我可以使用__init__.py定义全局变量吗?
我想定义一个常量,该常量应该在包的所有子模块中可用。我以为最好的地方__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
。
-
我可以将类定义放入__init__.py吗?
2021-01-29 关注 0 浏览74 1答案
-
使用模块中__init__.py中定义的方法
2021-01-29 关注 0 浏览58 1答案
-
使用__init__.py
2021-01-29 关注 0 浏览212 1答案
-
如何在(子)模块中使用__init__.py定义名称空间?
2021-01-29 关注 0 浏览93 1答案
-
如何导入__init__.py中定义的类
2021-01-29 关注 0 浏览61 1答案
-
使用webpack定义全局变量
2021-02-02 关注 0 浏览69 1答案
-
使用__init__.py导入Python子模块
2021-01-29 关注 0 浏览83 1答案
-
定义全局型变量,可以使用下列( )命令。
2022-05-11 关注 0 浏览7 1答案
-
相对路径即使使用__init__.py也无法使用
2021-01-29 关注 0 浏览105 1答案
-
如何在Windows上使用cython编译__init__.py文件
2021-01-29 关注 0 浏览150 1答案