如何从Python对象检索源代码?

我们使用getsource()检查模块的方法来获取函数的源代码。

inspect.getsource(object)

返回对象的源代码文本。参数可以是模块,类,方法,函数,回溯,框架或代码对象。源代码作为单个字符串返回。如果无法检索源代码,则会引发IOError。

如果该函数是从字符串,流中编译的,或者是从编译文件中导入的,则无法检索其源代码。

我们导入检查模块并检索给定脚本的源代码,如下所示

示例

#baz.py
import inspect
class foo:
      def bar():
          print 'Hello'
print(inspect.getsource(foo))

输出结果

C:/Users/nhooo1/~.py
class foo:
      def bar():
          print 'Hello'