【发布时间】:2026-01-16 01:10:02
【问题描述】:
我试图让第二个模块在循环导入中修改第一个模块的变量,但它似乎不起作用。
我有 2 个问题:1)为什么这不起作用/从语言开发的角度来看,这样做的原因是什么,以及 2)是否有任何简单的解决方案可以让我以稍微不同的方式做同样的事情?
a.py:
import b
test1 = 'a'
test2 = None
test3 = '3'
if __name__ == '__main__':
print test1, test2, test3 #prints 'a', None, 3
b.changeVars()
print test1, test2, test3 #prints 'a', None, 3 (i.e. nothing has changed)
b.py:
import a
def changeVars():
print a.test1, a.test2, a.test3 #prints 'a', None, 3
a.test1 = 'NEW VAR 1'
a.test2 = 'NEW VAR 2'
a.test3 = 'NEW VAR 3'
print a.test1, a.test2, a.test3 #prints 'NEW VAR 1', 'NEW VAR 2', 'NEW VAR 3'
【问题讨论】:
标签: python variables import circular-dependency