函数闭包,golbal,nonlocal
测试1:
age = 19
def func1():
age = 73
def func2():
nonlocal age
# global age
# age = 11
print('func2 内',age)
func2()
print('func1 内',age)
func1()
print('外 ',age)
输出:
func2 内 73
func1 内 73
外 19
测试2:
age = 19
def func1():
age = 73
def func2():
# nonlocal age
global age
# age = 11
print('func2 内',age)
func2()
print('func1 内',age)
func1()
print('外 ',age)
输出:
func2 内 19
func1 内 73
外 19
测试3:
age = 19
def func1():
age = 73
def func2():
# nonlocal age
global age
age = 11
print('func2 内',age)
func2()
print('func1 内',age)
func1()
print('外 ',age)
输出:
func2 内 11
func1 内 73
外 11
测试4:
age = 19
def func1():
age = 73
def func2():
nonlocal age
# global age # global必须在本作用域中声明age之前使用
age = 11
print('func2 内',age)
func2()
print('func1 内',age)
func1()
print('外 ',age)
输出:
func2 内 11
func1 内 11
外 19
测试5
name = 'alex' #name=‘lhf’
def change_name():
name='lhf'
print('00', name)
# global name # global必须在本作用域中声明age之前使用
name = 'lhf'
# name='aaaa' #name='bbb'
def foo():
# name = 'wu'
# nonlocal name
name='bbbb'
print('02',name)
print('01',name)
foo()
print('03',name)
change_name()
输出:
00 lhf
01 lhf
02 bbbb
03 lhf
写入自己的博客中才能记得长久