#global 定义全局变量
#以下是普通的调用函数
name=100
def hanshu():
name=80
def hanshu1():
name=20
print(‘最里边的是’,name) #最里边的是 20
hanshu1()
print(‘中间的这个是’,name) #中间的这个是 80
hanshu()
print(‘最外边的这个是’,name) #最外边的这个是 100
name=100
def hanshu2():
global name
name=80
def hanshu3():
name=20
print(‘最里边的是’,name) #最里边的是 20
hanshu3()
print(‘中间的这个是’,name) #中间的这个是 80
hanshu2()
print(‘最外边的这个是’,name) #最外边的这个是 80
#所以得出如下结论
#global用于定义全局变量,如果变量是局部的变量,那么就可以把这个局部变量定义成全局变量
#函数运行时读取变量是优先读取局部变量的,如果没有,就往外一层层读取,知道找到变量值
#nonlocal 定义局部变量
count = 1
def a():
count = ‘okok’
def b():
nonlocal count
print(count) # okok
count = 2
b()
print(count) # 2
if name == ‘main’:
a()
print(count) # 1
#由此可以得出以下结论
#nonlocal用于定义局部变量,可以把这个全局变量定义成局部变量
#nonlocal只能在封装函数中使用,只对所在的封装函数中起作用,定义前,在外部函数先进行声明,在内部函数进行nonlocal声明,
#这样在b()函数中的count与a()中的count是同一个变量