A模块的公共变量:
AA= False
BB= []
B引入:
from . import AA, BB
1.B的脚本过程中修改了AA的全局变量值,由于AA是布尔值,改变后引用不相同,而B引用的是AA指向的False故值不变,除非在修改后,目标文件再次import一次才行
2.B的脚本过程中BB的列表增加了值,因为BB为列表可编辑,所以目标未变,B中是修改好BB的值
这个情况与另一种场景很类似,
def a(s=1, l=[]):
l.append(1)
s += 1
print s
print l
for i in range(1, 3):
a()
结果为
2
[1]
2
[1, 1]
网友评论