1 a = [1, 2] 2 b = 'Immutable' 3 def test(): 4 # global b 5 print(a) 6 a.append('asd') 7 b = b + 'asd' # 当只是引用变量b的值,如:filename=b,而非修改b的值时,不需声明全局b变量 8 def test2(): 9 print(a) 10 print(b) 11 test2() 12 13 test() 14 # 在python3中,若在局部中有改变不可变类型的全局变量的值的操作,无论先后顺序,系统会默认为将该变量作为局部变量,不会再去全局寻找该变量的值,因此如上的代码,会报错: 16 # 解决办法是使用global将该变量变为全局变量。 另,在局部中增,删,改可变类型的全局变量的元素,不存在这个问题