我正在将一些 matlab 代码移植到 python 中。在这种情况下,我需要使用包和模块。相关的包目录结构如下所示:
toppackage
__init__.py
subpackage
__init__.py
module.py
...
在我使用该包的脚本中,我可以像这样工作:
from toppackage.subpackage.module import SomeClass
s = SomeClass()
但我更喜欢这样工作:
import toppackage %somewhere at the beginning of file
s = toppackage.subpackage.module.SomeClass()
我看到这是在 numpy 中完成的。但我在文档中找不到它。我怎样才能做到这一点?
提前致谢。
最佳答案
您需要导入__init__.py
文件中包含的包。
您可以导入 toppackage/__init__.py
中的包,例如:
import toppackage.subpackage.module
或者您可以仅导入每个直接包含的包,因此在 toppackage/__init__.py
中:
from . import subpackage
并在toppackage/subpackage/__init__.py
中:
from . import module
仅导入顶级包不会自动使包含的包可用。您需要在某处显式导入一次完整路径,然后才能正常工作。
numpy
包导入顶级 __init__.py
中的嵌套包。
关于python:如何直接在另一个包中调用一个包中的模块中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16443995/