gpt4 book ai didi

python - 使变量全局到python中的多个文件

转载 作者:行者123 更新时间:2023-11-28 20:51:44 24 4
gpt4 key购买 nike

我想使一个变量成为 2 个以上文件的全局变量,以便在任何文件中的操作反射(reflect)在包含该变量的文件中。

我正在做的是:

b.py

import a

x = 0
def func1():
global x
x = 1
if __name__ == "__main__":
print x
func1()
print x
a.func2()
print x

a.py

import b

def func2():
print b.x
b.x = 2

我在这里搜索线程,发现 from a import * 正在制作副本,而 import a 则不然。我希望上面的代码在执行 python b.py 时打印 0 1 1 2(确保它应该在新行中)但它显示 0 1 0 1

如何实现它?

最佳答案

首先让我说我认为像这样的全局变量(使用 global 关键字)是邪恶的。但重组它的一种方法是将全局变量放入单独模块中的类中,以避免循环导入。

a.py

from c import MyGlobals

def func2():
print MyGlobals.x
MyGlobals.x = 2

b.py

import a
from c import MyGlobals

def func1():
MyGlobals.x = 1


if __name__ == "__main__":
print MyGlobals.x
func1()
print MyGlobals.x
a.func2()
print MyGlobals.x

c.py

class MyGlobals(object):
x = 0

输出

$ python b.py 
0
1
1
2

关于python - 使变量全局到python中的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8814316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com