我想定义一个在包的所有子模块中都可用的常量。我以为最好的地方是在__init__.py
根包的文件。但我不知道该怎么做。假设我有几个子包,每个子包都有几个模块。如何从这些模块访问该变量?
当然,如果这是完全错误的,并且有更好的选择,我想知道。
你应该能够把它们放进去__init__.py
。这一直都是这样做的。
mypackage/__init__.py
:
MY_CONSTANT = 42
mypackage/mymodule.py
:
from mypackage import MY_CONSTANT
print "my constant is", MY_CONSTANT
然后,导入 mymodule:
>>> from mypackage import mymodule
my constant is 42
不过,如果您确实有常量,那么将它们放在单独的模块(constants.py、config.py、...)中是合理的(可能是最佳实践),然后如果您希望它们位于包命名空间中,请导入他们。
mypackage/__init__.py
:
from mypackage.constants import *
尽管如此,这并不会自动将常量包含在包模块的命名空间中。包中的每个模块仍然必须显式导入常量mypackage
或来自mypackage.constants
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)