我使用 ipython 的 reload 并且可以自动重新加载代码的更改。但是我发现如果我在一个类中添加一些新函数,新函数不能自动重新加载。任何人都可以帮助解决这个问题吗?例如,我有一个带有代码的文件 main.py:
class A():
def f(self):
print "in f"
if __name__ == '__main__':
from main import *
a = A()
a.f()
当我run -i main.py
在 ipython 中使用时,我可以修改函数 f 并a.f()
在 ipython shell 中使用以运行新函数。但是如果我想添加一个新函数,例如将类定义为:
class A():
def f(self):
print "in f"
def g(self):
print "in g"
我不能a.g()
用来运行新功能,我会得到:
AttributeError: A instance has no attribute 'g'
所以,我的问题是如何在不重新运行整个代码的情况下自动重新加载类中的新函数?