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 count

print(counter()) # 1

print(counter()) # 2

改进方案(使用 nonlocal

def make_counter():

count = 0

def counter():

nonlocal count

count += 1

return count

return counter

cnt = make_counter()

print(cnt()) # 1

print(cnt()) # 2

x = 10 # 全局变量

def modify():

global x # 声明x为全局变量

x = 20 # 修改全局x的值

modify()

print(x) # 输出20

相关推荐
我的xiaodoujiao9 分钟前
3、API 接口自动化测试详细图文教程学习系列3--相关Python基础知识2
python·学习·测试工具·pytest
南 阳12 分钟前
Python从入门到精通day56
开发语言·python
m0_5698814718 分钟前
C++中的组合模式高级应用
开发语言·c++·算法
m0_7301151123 分钟前
高性能计算负载均衡
开发语言·c++·算法
孞㐑¥31 分钟前
算法—记忆化搜索
开发语言·c++·经验分享·笔记·算法
xushichao198932 分钟前
代码覆盖率工具实战
开发语言·c++·算法
2401_8579182933 分钟前
C++与WebAssembly集成
开发语言·c++·算法
2401_8796938734 分钟前
C++与微服务架构
开发语言·c++·算法
阿kun要赚马内34 分钟前
Python中函数的进阶用法
开发语言·python
Spliceㅤ38 分钟前
项目:基于qwen的点餐系统
开发语言·人工智能·python·机器学习·自然语言处理