一、什么是全局变量
在Python中,全局变量是指在整个程序中都可以访问的变量,不局限于在某个函数之内。全局变量的作用域从变量定义的地方开始,直到文件末尾为止。
x = 10 #全局变量 def foo(): print(x) #可以使用全局变量x foo() #输出结果为10
上面的例子中,变量x是在函数外定义的,所以可以在函数foo()中使用。
二、如何在函数内部修改全局变量
在函数内部修改全局变量需要使用global关键字。
x = 10 #全局变量 def foo(): global x #声明全局变量x x = 20 #修改全局变量x print(x) foo() #输出结果为20 print(x) #输出结果为20
在上面的例子中,我们在函数foo()内部使用global关键字声明了变量x是全局变量,然后就可以在函数内部对全局变量进行修改了。
三、global关键字的使用注意事项
1. global关键字必须在函数内部使用
global关键字只有在函数内部使用才有意义,因为只有在函数内部才需要访问和修改全局变量。
x = 10 #全局变量 def foo(): print(x) global x #错误的使用方式 foo() #输出结果为10
上面的例子中,我们在函数外部使用global关键字声明了变量x是全局变量,这是错误的使用方式,因为global关键字必须在函数内部使用。
2. 两次使用global关键字
在同一个函数内部,可以使用多次global关键字来声明多个全局变量,但是这样做可能会导致代码的可读性变差。
x = 10 #全局变量 y = 20 #全局变量 def foo(): global x global y #两次声明全局变量 x = 30 y = 40 print(x) print(y) foo() #输出结果为30,40 print(x) #输出结果为30 print(y) #输出结果为40
3. 不要滥用global关键字
在使用global关键字时,也要注意不要滥用,因为全局变量的作用域过于广泛,可能会导致代码的可读性变差,还会增加程序出错的可能性。如果可以使用其他方式实现同样的效果,则尽量不要使用全局变量。
x = 10 #全局变量 def foo(): x = 20 #定义局部变量x print(x) foo() #输出结果为20 print(x) #输出结果为10
在上面的例子中,我们在函数foo()内部定义了一个局部变量x,它与全局变量x没有任何关系。