gpt4 book ai didi

python - 我可以使用 __init__.py 来定义全局变量吗?

转载 作者:IT老高 更新时间:2023-10-28 21:06:42 25 4
gpt4 key购买 nike

我想定义一个常量,它应该在包的所有子模块中都可用。我认为最好的位置是在根包的 __init__.py 文件中。但我不知道该怎么做。假设我有几个子包,每个子包都有几个模块。如何从这些模块中访问该变量?

当然,如果这是完全错误的,并且有更好的选择,我很想知道。

最佳答案

您应该可以将它们放在 __init__.py 中。一直都是这样。

mypackage/__init__.py:

MY_CONSTANT = 42

mypackage/mymodule.py:

from mypackage import MY_CONSTANT
print "my constant is", MY_CONSTANT

然后,导入我的模块:

>>> from mypackage import mymodule
my constant is 42

不过,如果您确实有常量,则将它们放在单独的模块(constants.py、config.py、...)中是合理的(可能是最佳实践),然后如果您希望将它们放入包中命名空间,导入它们。

mypackage/__init__.py:

from mypackage.constants import *

不过,这不会自动在包模块的命名空间中包含常量。包中的每个模块仍然必须从 mypackagemypackage.constants 显式导入常量。

关于python - 我可以使用 __init__.py 来定义全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1383239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com