我有一个与 scipy/numpy 结构相似的包,其中有几个主要的子模块,每个子模块都包含来自各种文件的函数,这些文件已被扁平化到同一个命名空间中。比方说
package/
sub1/
__init__.py
file1.py
file2.py
然后sub1/__init__.py
看起来像这样:
from .file1 import func1, func2
from .file2 import func3
结果是我能做到
import package.sub1
package.sub1.func1()
但是,问题是以下不起作用:
>>> import package.sub1
-- change things in file1.py --
>>> reload(package.sub1)
该功能不更新。如果我这样做,它会起作用import package.sub1.file1
,所以有一些东西会扁平化命名空间,这会导致它失去与模块的连接。我的主要问题是我如何仍然可以使用该reload
命令,同时还能获得能够在单独的文件中编写同级函数的好处。