-1
我与定义一个全局变量包由包中的所有模块使用挣扎更新Python中的全局包变量。 我有这样的代码:我如何在运行时
# my_module.py
from .__main__ import GLOBAL_VAR
def print_global():
print(GLOBAL_VAR)
# __main__.py
from my_package import my_module
GLOBAL_VAR = ''
def main():
global GLOBAL_VAR
GLOBAL_VAR = 'myvalue'
my_module.print_global()
if __name__ == '__main__':
main()
我希望my_module.print_global()
打印myvalue
,而是它打印一个空字符串(初始值)。 我也试过在main()
导入模块后GLOBAL_VAR
的声明,但是它并没有帮助。
您能否告诉我如何从main()
重新定义GOBAL_VAR
并使其可用于包装中的所有子模块?我还会接受任何其他选项,而不是使用global
关键字。
编辑:建议的类似的问题只是部分地回答了这一个。关于redefinig globals没有任何关系。
为什么你会需要一个烂摊子?为什么不只是'GLOBAL_VAR ='myvalue'? –
@AzatIbrakov我想要一个变量可用于包中的所有模块和我不想将其传递到所有的功能/对象作为一个额外的参数。有什么建议么? – makeiteasy
你的变量来自哪里?从环境/文件/互联网/数据库?你需要阅读一次吗? –