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

相关推荐
苦学编程的谢12 分钟前
MyBatis_3
java·开发语言·后端·mybatis
go54631584651 小时前
Python点阵字生成与优化:从基础实现到高级渲染技术
开发语言·人工智能·python·深度学习·分类·数据挖掘
猫头虎1 小时前
2025年02月11日 Go生态洞察:Go 1.24 发布亮点全面剖析
开发语言·后端·python·golang·go·beego·go1.19
仰望天空—永强1 小时前
PS 2025【七月最新v26.5】PS铺软件安装|最新版|附带安装文件|详细安装说明|附PS插件
开发语言·图像处理·python·图形渲染·photoshop
寒士obj1 小时前
JVM 内存结构
java·开发语言·jvm
MediaTea1 小时前
Python 库手册:xmlrpc.client 与 xmlrpc.server 模块
开发语言·python
悦悦子a啊1 小时前
Python之--字典
开发语言·python·学习
水军总督1 小时前
OpenCV+Python
python·opencv·计算机视觉
qyhua2 小时前
Windows 平台源码部署 Dify教程(不依赖 Docker)
人工智能·windows·python
float_六七2 小时前
JavaScript:现代Web开发的核心动力
开发语言·前端·javascript