如何获取 Python 函数的源代码?

新手上路,请多包涵

假设我有一个如下定义的 Python 函数:

 def foo(arg1,arg2):
    #do something with args
    a = arg1 + arg2
    return a

我可以使用 foo.func_name 获取函数的名称。我怎样才能以编程方式获取它的源代码,就像我在上面输入的那样?

原文由 david 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 431
1 个回答

如果该函数来自文件系统上可用的源文件,那么 inspect.getsource(foo) 可能会有帮助:

如果 foo 定义为:

 def foo(arg1,arg2):
    #do something with args
    a = arg1 + arg2
    return a

然后:

 import inspect
lines = inspect.getsource(foo)
print(lines)

退货:

 def foo(arg1,arg2):
    #do something with args
    a = arg1 + arg2
    return a

但我相信,如果该函数是从字符串、流或从已编译文件导入的,那么您将无法检索其源代码。

原文由 Rafał Dowgird 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题