为什么不让python来做呢?我认为inspection
模块可以打印出函数的来源,所以你可以导入模块,选择函数并检查它。不挂断。正在为您寻找解决方案...
好的。事实证明,该inspect.getsource
函数不适用于交互定义的内容:
>>> def test(f):
... print 'arg:', f
...
>>> test(1)
arg: 1
>>> inspect.getsource(test)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\inspect.py", line 699, in getsource
lines, lnum = getsourcelines(object)
File "C:\Python27\lib\inspect.py", line 688, in getsourcelines
lines, lnum = findsource(object)
File "C:\Python27\lib\inspect.py", line 529, in findsource
raise IOError('source code not available')
IOError: source code not available
>>>
但是对于您的用例,它将起作用:对于保存到磁盘的模块。test.py
以我的文件为例:
def test(f):
print 'arg:', f
def other(f):
print 'other:', f
并与此交互式会话进行比较:
>>> import inspect
>>> import test
>>> inspect.getsource(test.test)
"def test(f):\n print 'arg:', f\n"
>>> inspect.getsource(test.other)
"def other(f):\n print 'other:', f\n"
>>>
所以......您需要编写一个简单的python 脚本,它接受python 源文件的名称和函数/对象名称作为参数。然后它应该导入模块并检查函数并将其打印到 STDOUT。