一、全局变量的定义与调用
在主进程中定义的变量属于全局变量,如下面的变量a、b、c,都是全局变量。
如果只是调用全局变量,不对其进行修改,可直接调用。
a = 1
b = [2,2]def f1():print(a)print(b)print(c) if __name__ == '__main__':c = 3f1()
结果:
1
[2, 2]
3
二、全局变量的修改
不进行声明默认创建新的局部变量
声明全局变量后的修改是对全局变量的修改
像列表、字典这种通过地址修改其中元素的类型,可以直接修改其元素,但整体不行。
a = 1
b = [2,2]
c = [3,3]
d = 4def f1():a = 11 # 这里的a可以被当作全局变量也可以被当作新的局部变量,修改时python默认创建新的局部变量b[0] = 22 # 这里的b[0]是内存中的某个地址,所以这里对b[0]的修改,是对全局变量的修改c = [33,33] # 原理同a,c为新的局部变量global d # 声明这里的d是全局变量d = 44 # 对全局变量进行修改 if __name__ == '__main__':print(a)print(b)print(c)print(d)f1()print("------")print(a)print(b)print(c)print(d)
结果:
1
[2, 2]
[3, 3]
4
------
1
[22, 2]
[3, 3]
44