假设两个名为GlobVars
和MyModule
的Python模块。在
模块GlobVars
旨在为另一个模块提供全局变量my_glob_var
。在
# cat GlobVars.py
class getGlobVars:
def __init__(self):
global my_glob_var
my_glob_var = 'World'
def go(self):
pass
模块MyModule
包含一个具有两个函数(_concat
和getConcat
)的类,其中一个函数(即_concat
)是一个尝试访问上述全局变量的静态方法。{static}返回一个连接的函数。在
当我试图加载两个模块并执行函数getConcat
时,似乎无法正确访问全局变量。为什么会这样?解决办法是什么?在
import MyModule
import GlobVars
print MyModule.MyClass('!').getConcat()
# NameError: global name 'my_glob_var' is not defined
在您的特定情况下,您不必使用
global
关键字,也不必使用GlobVars
类。取而代之的是:
顺便说一句,python文档很少涉及跨模块共享全局变量:https://docs.python.org/3/faq/programming.html?highlight=global#how-do-i-share-global-variables-across-modules
相关问题 更多 >
编程相关推荐