先看一个简单的例子:
age = 25
def change_age():
age = 32
print(age)
change_age()
print(age)
执行结果为:
32
25
例子中的几个age变量不尽相同,一个是首行中定义的,称作全局变量;另一个是函数change_age()定义的,称作局部变量。
全局变量在本程序任何地方创建,可以被本程序所有对象或函数引用。
局部变量又可称之为内部变量;是由某对象或某个函数所创建的变量,通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
将上述例子改成:
age = 25
def change_age():
print(age)
change_age()
print(age)
那么函数change_age()中将不再有局部变量,会直接调用全局变量age,
因此执行结果变成:
25
25
如果要在函数中强制使用全局变量,可以在函数体中引入全局变量。
age = 25
def change_age():
global age
age = 32
print(age)
change_age()
print(age)
一旦再次赋值,将意味着全局变量的值被修改。所以它的执行结果是:
32
32