(1)使用import
module1:
a = True
module2:
import module1
def test():
module1.a = False
main:
import module1, module2
test()
print(module1.a) # False
- 起先,module1中的变量a指向True
- 在模块2中,使用import module1导入,实际上是在module22中重新创建了一个变量叫module1,module1指向module1模块,module1.a 指向module1模块中的变量a,同理在主程序代码中依然如此。
让 module1.a=False,表示将module1模块中的变量a的指向修改为False,即module1.a = False - 此时module1.a依然指向module1模块中的变量a,而此时a在module2中已经被指向False。
所以最终打印出来a的值为False。
(2)使用from
module1:
a = True
module2:
from module1 import a
def test():
global a
a = False
main:
from module1 import a
from module2 import test
test()
print(a) # True
from module1 import