在Python中,一个函数就是一个作用域,局部变量就是放在其用域中
代码定义完成后,作用域已经生成,作用域链向上查找
age = 18
def func1():
age = 73
def func2():
print(age) #调用age,本级没有向上查找
return func2 #函数func1()返回函数func2()的名字func2,而不是func2()这个函数
a = func1() #此时的a就等于函数func1()返回的func2()的函数名func2
print(a)
a() #那a再加上括号就等同于func2()这个函数
结果:
<function func1.<locals>.func2 at 0x0000020292E646A8> 73