小编Bil*_*man的帖子

为什么我不能在python中更改另一个模块变量?

我试图允许第二个模块在循环导入中修改第一个模块的变量,但它似乎不起作用.

我有两个问题: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)
Run Code Online (Sandbox Code Playgroud)

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 …
Run Code Online (Sandbox Code Playgroud)

python variables import circular-dependency

4
推荐指数
1
解决办法
1140
查看次数

标签 统计

circular-dependency ×1

import ×1

python ×1

variables ×1