我有一个包含多个模块的包,在
__init__.py
文件中,每个模块都有一个 from module import *
,这样模块中的所有函数都将存在于包命名空间级别。
我的问题是,当我在 jupyter notebook 中使用这个包并更改其中一个模块中的代码时,重新加载包不会重新加载这些模块。我让它工作的唯一方法是专门调用模块,如下所示,但这违背了在包命名空间级别拥有函数的目的。
我想做的是在包的
__init__.py
文件中放一些东西,这样当包被重新加载时它会导致模块被重新加载。有什么办法吗?
import package as pkg
from importlib import reload
# doesn't work
reload(pkg)
pkg.foo()
# does work but is cumbersome...
reload(pkg.module)
pkg.module.foo()
封装结构:
package/
module1.py
__init__.py