8

我正在使用 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
4

1 回答 1

5

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

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

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

于 2016-03-07T21:38:38.170 回答