我在某些模块之间共享全局变量时遇到一些问题。 在我的程序中,我想定义一些全局变量,这些变量是任何模块的共同点,例如“ counter”。为了做到这一点,我定义了一个仅包含此全局变量的模块,称为datadef.py。简单地说,是一个单行模块,其默认值为零
counter=1
因此,我定义了“测试”模块
从datadef导入*
print (counter)
counter+=1
print (counter)
运行“ test”时,输出为1和2。 没关系,“测试”模块使用“数据定义”模块中定义的“计数器”,并为“计数器”分配适当的值。
当我创建一个带有某些功能的新模块“ lib”并且这些功能要访问“ countdef”变量(在“ datadef”模块中定义)并进行修改时,出现问题。 “ lib”模块非常简单:
counter=1
从datadef导入*
def resetcounter():
global counter
counter=0
return
我修改主程序“测试”以包括此新的库模块
from datadef import *
from lib import *
print (counter)
counter+=1
print (counter)
resetcounter()
print (counter)
运行“ test”时,结果为1,2,2,没有运行时错误,而不是预期值1,2,0。 “ resetcounter”功能不会作用于全局变量“ counter”,不会作用于不同于“ test”和“ datadef”模块中sed的“ counter”变量。
如何才能在许多库模块之间共享数据定义模块,以使所有模块都具有相同的变量(而不是本地副本)? 如何在任何模块上访问相同的全局变量?
答案 0 :(得分:0)
在某些python模块之间共享全局变量
#global.py
current_value=0
创建一个Python程序文件以访问全局变量
#updater.py
import global
def update_value():
global.current_value = 100
创建另一个Python程序以测试值是否更改
#display_value.py
import global
import updater
updater.update_value()
print(global.current_value)