当前位置: 首页 > news >正文

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
 

相关文章:

  • AIGC的产品设计演进:从工具到协作者
  • 实战:子组件获取父组件订单信息
  • AI联网时代嵌入式不再闭门造车--嵌入式开发工具软件针对性断网隔离方法原理与实测
  • Rest-Assured API 测试:基于 Java 和 TestNG 的接口自动化测试
  • golang常用库之-go-i18n库(国际化)
  • STM32学习之I2C(理论篇)
  • 智慧零售管理中的客流统计与属性分析
  • tableau 实战工作场景常用函数与LOD表达式的应用详解
  • rl_sar实现sim2real的整体思路
  • 按字典序排列最小的等效字符串
  • 第三章支线二 ·函数幻阶:语法召唤与逻辑封印
  • C#提取CAN ASC文件时间戳:实现与性能优化
  • < 自用文 OS有关 新的JD云主机> 国内 京东云主机 2C4G 60G 5Mb 498/36月 Ubuntu22
  • 618来了,推荐京东云服务器
  • 如何构建船舵舵角和船的航向之间的动力学方程?它是一个一阶惯性环节吗?
  • python打卡第47天
  • ArcPy扩展模块的使用
  • 数控滑台技术革新:实现高效精密加工的全面探索
  • 【读论文】U-Net: Convolutional Networks for Biomedical Image Segmentation 卷积神经网络
  • 第二十七课:手搓梯度提升树
  • 章丘做网站公司/品牌推广文案
  • 深圳模板建站企业/悟空建站seo服务
  • 微网站有什么用/珠海网站seo
  • 宁波网站开发公司电话/百度客服人工电话24小时
  • wordpress商城 中文站/发稿
  • 长寿做网站/seo营销推广平台