如何在Python中跨模块共享全局变量?
要在Python中跨模块共享全局变量,首先需要了解什么是全局变量及其作用域。
全局变量
示例
如果一个变量可以从任何地方(即函数内部和外部)访问,那么它就是具有全局作用域的。
让我们看一个示例:
# 变量
i = 10
# 函数
def example():
print(i)
print(i) # 同一个变量在函数外也可以访问
# 调用example()函数
example()
# 同一个变量在函数外也可以访问
print(i)
输出
10
10
10
跨模块共享信息
现在,为了在Python中跨多个模块共享信息,我们需要创建一个config或cfg模块。要将其形成为全局变量,即可以从任何地方访问的全局变量,请在应用程序的所有模块中导入config模块,如上面的示例所示:
import config
通过在所有模块中导入模块,模块就变成了一个全局名称。由于每个模块只有一个实例,对模块对象进行的任何更改都会在整个应用程序中反映出来。
现在让我们来看一个例子。这是 config.py :
# 'k'配置设置的默认值
k = 0
这是mod.py,它导入了上面的config:
import config
config.k = 1
这是main.py,它导入了config和mod:
import config
import mod
print(config.k)