"""
说明:
1、nonlocal声明的目的是可以使用且修改上级目录变量
2、等价于闭包的原理【在此方法旗下所有方法内部是全局变量】
2、如果仅访问上级变量,而不修改的情况下,可以省内nonlocal声明
"""
def aa():
a = 1
def bb():
# 仅声明才会改变上级方法的变量
nonlocal a
# 因为修改了a的值,所有必须声明是修改上级目录的值
a = 2
print(f"第二级方法的a={a}") # 输出2
bb()
print(f"第一级方法的a={a}") # 输出2【已改变】
aa()