全局变量,顾名思义,就是全局都可以使用的变量。一般定义在函数之外,然后函数内部通过global关键字描述,以区分函数内部的普通变量。一般,需要用到全局变量的地方,我都会把这些函数写成一个类,然后通过类属性变量的方法公用一个变量。不过,很多时候用不着大动干戈去写类。
先看一个简单栗子:
a = 0 # initialize variable a
def coo():
global a # call a
a += 1
return a
for i in range(10):
print(coo())
注意,变量只是一个普通变量,首先在函数外部进行初始化,然后在函数内部通过global关键字呼叫这个变量,就可以实现全局变量的功能了。看输出就知道了,变量a会随着函数coo()的不断运行也在不断变化。输出如下:
1
2
3
4
5
6
7
8
9
10
当然,全局变量不仅仅是数,还可以是其他类型的数据结构,比如:
a = []
def coo():
global a
a += [1]
return a
for i in range(10):
print(coo())
输出如下:
[1]
[1, 1]
[1, 1, 1]
[1, 1, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]