global 的主要用法,若想在函数内部使用函数外部的全局变量,则需要使用关键字global,示例:
a = 20
def testglobal():
a = 10
print("在函数内给a 重新赋值后打印:",a)
if __name__ =="__main__":
testglobal()
print("打印全局变量a:", a)
运行结果:
在函数内给a 重新赋值后打印: 10
打印全局变量a: 20
运行结果如图所示,函数内部直接给 a 赋值,并没有修改全局变量的值,而是在定义一个同名的局部变量。若想在函数内部修改全局变量,需要在函数里面声明全局变量,global:
a = 20
def testglobal():
global a
a = 10
print("在函数内给a 重新赋值后打印:",a)
if __name__ =="__main__":
testglobal()
print("打印全局变量a:", a)
运行结果:
在函数内给a 重新赋值后打印: 10
打印全局变量a: 10
需要注意的是,有些全局变量类型不需要在函数内部申明 global,例如:列表、字典、集合,这些都是可变类型,不可变类型则需要声明,如: int、float、bool、str、元组
不可变类型:如果改变了该类型的数据的值