nonlocal 与global关键字
Python精进系列:nonlocal 关键字详解_python nonlocal-CSDN博客
nonlocal
关键字用于在嵌套函数中声明一个变量为“非局部变量”,即该变量属于外层函数的作用域,而非当前函数的局部作用域
def outer():
x = "外层值"
def inner():
nonlocal x # ✅ 声明 x 是外层变量
x = "内层修改值"
print("内层函数:", x)
inner()
print("外层函数:", x)outer()
传统方案(全局变量)
count = 0
def counter():
global count
count += 1
return countprint(counter()) # 1
print(counter()) # 2
改进方案(使用 nonlocal
)
def make_counter():
count = 0
def counter():
nonlocal count
count += 1
return count
return countercnt = make_counter()
print(cnt()) # 1
print(cnt()) # 2
x = 10 # 全局变量
def modify():
global x # 声明x为全局变量
x = 20 # 修改全局x的值
modify()
print(x) # 输出20