一般地,将在函数外定义的变量称为:外部变量(全局变量);在函数内定义的变量称为:内部变量(局部变量)。
global 用法普遍;nonlocal 仅在内嵌函数中使用。
一、关键词 global
1、内部变量仅可在函数内使用,函数结束时自行销毁,在函数外无法访问。例如:
def fun(x,y): z = 18; print(x,y,z) # 内部变量 z
fun(11,12) # 11 12 18
print(z) # z 是内部变量,在函数外不能访问:NameError: name 'x' is not defined
2、如果要使内部变量变成全局变量,以便在函数外使用,必须用关键词 “global” 声明一下。这里要注意的是,声明语句必须是单独成句,不能把声明与赋值放在同一句中,否则会报错。例如:
def fun(x,y): global z; z= 18; print(x,y,z)
fun(11,12) # 11 12 18
print