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

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

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

    我可以使用foo.func_名称。如何以编程方式获取其源代码,正如我在上面键入的那样?在

  • 答案:
  • 如果函数来自文件系统上可用的源文件,则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

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