Python:获取类的源代码(使用inspect)

时间:2016-03-07 21:26:59

标签: python class ipython linecache

我正在使用ipython,我想保存在我的一个笔记本中定义的类。我可以使用%save和inspect.getsource很好地完成这些功能,但我似乎无法得到我的类的源代码。我快速查看了检查中的方法,似乎无法找到任何有用的方法。有什么建议吗?

class A():
    def __init__(self):
        self.x = 1

%save filename.py inspect.getsource(A)

inspect.getsource(A)
>>> ...
>>> TypeError: <module '__main__'> is a built-in class

1 个答案:

答案 0 :(得分:2)

getsource通过实际打开定义您正在查看的对象的源文件来工作。

但是,由于您在交互式解释器中定义了A,因此没有这样的源文件,因此Python无法找到它。

错误有些模糊,但Python基本上会尝试查找A&#39}模块(A.__module__)的源文件,该模块为__main__,并且没有__file__属性(因为它不是来自文件)。