2024-04-25 19:08:08 发布
网友
假设我有一个Python函数,定义如下:
def foo(arg1,arg2): #do something with args a = arg1 + arg2 return a
我可以使用foo.func_name获取函数名。我怎样才能以编程的方式得到它的源代码,就像我在上面输入的那样?
foo.func_name
如果该函数来自文件系统上可用的源文件,那么^{}可能有帮助:
如果foo定义为:
foo
然后:
import inspect lines = inspect.getsource(foo) print(lines)
返回:
但我相信,如果函数是从字符串、流或从编译文件导入编译的,则无法检索其源代码。
如果源代码不可用,dis是您的朋友:
dis
>>> import dis >>> def foo(arg1,arg2): ... #do something with args ... a = arg1 + arg2 ... return a ... >>> dis.dis(foo) 3 0 LOAD_FAST 0 (arg1) 3 LOAD_FAST 1 (arg2) 6 BINARY_ADD 7 STORE_FAST 2 (a) 4 10 LOAD_FAST 2 (a) 13 RETURN_VALUE
inspect module具有从python对象检索源代码的方法。似乎只有当源位于文件中时它才起作用。如果你有这个,我想你不需要从物体上得到来源。
如果该函数来自文件系统上可用的源文件,那么^{} 可能有帮助:
如果
foo
定义为:然后:
返回:
但我相信,如果函数是从字符串、流或从编译文件导入编译的,则无法检索其源代码。
如果源代码不可用,
dis
是您的朋友:inspect module具有从python对象检索源代码的方法。似乎只有当源位于文件中时它才起作用。如果你有这个,我想你不需要从物体上得到来源。
相关问题 更多 >
编程相关推荐