我正在使用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
答案 0 :(得分:2)
getsource
通过实际打开定义您正在查看的对象的源文件来工作。
但是,由于您在交互式解释器中定义了A
,因此没有这样的源文件,因此Python无法找到它。
错误有些模糊,但Python基本上会尝试查找A&#39}模块(A.__module__
)的源文件,该模块为__main__
,并且没有__file__
属性(因为它不是来自文件)。