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

函数返回值、变量作用域、global关键字深度拆解

博客导语

局部变量修改全局变量、函数多返回值、return与exit区别是新手高频报错点。本篇结合内存栈帧讲解变量查找规则,区分global/nonlocal使用边界,补齐函数返回值底层内存逻辑。


一、函数返回值全用法

1.单返回值与多返回值

Python原生支持多返回值,底层自动打包为元组,接收时可解包。无return语句时,默认返回None。

def get_pos(): return 100,200 # 底层等价于return (100,200) x,y = get_pos() # 自动解包接收

2.return核心特性

执行return后,会立即终止当前函数,后续代码永远不执行;return可以单独空写,直接终止函数,返回None。


二、变量作用域三层划分

  1. 局部作用域(L):函数内部定义的变量,仅当前函数栈帧生效,函数调用结束立即销毁

  2. 全局作用域(G):函数外部、模块顶层定义的变量,整个模块内生效

  3. 内置作用域(B):Python内置函数、关键字,如print、len,全局任意位置生效

变量查找规则(LEGB)

局部→外层嵌套→全局→内置,由内向外逐层查找,找不到直接抛出NameError


三、global关键字使用场景与禁区

1.只读全局变量(无需global)

函数内部仅读取全局变量,不做修改,不需要任何关键字,直接使用即可

2.修改全局变量(必须global)

函数内部想要重新赋值、修改全局不可变变量,必须先用global声明,否则解释器会判定为新建局部变量,出现冲突报错。

count = 0 def add_count(): global count count += 1 add_count() print(count) # 1

3.禁区:可变全局变量无需global

全局列表、字典,函数内部修改内部元素,不需要global,因为没有修改变量指向的内存地址,只是原地修改数据。


四、新手必踩报错:局部变量引用前赋值

a = 10 def test(): print(a) a = 20 # 解释器提前识别局部赋值,判定a为局部变量,读取时报错

解决方案:读取前使用global声明

http://www.jsqmd.com/news/1014581/

相关文章:

  • 从GPT-1到GPT-4o:一个普通开发者眼中的模型进化与实战选择指南
  • 5大核心价值矩阵解析:LinkSwift如何重塑九大网盘下载体验
  • 相框厂主要分布在哪里?主要产区横向对比
  • 3分钟搭建OBS RTSP服务器:obs-rtspserver插件完整教程
  • 别再乱选模板了!HR推荐这2个在线简历制作网站,一键套用+真实案例,轻松斩获面试邀约! - HR小张
  • 北京莫瑶教育零基础转行AI工程师(按学习难度分级)|2026就业向全程学习指南 - 教育信息网
  • 智能图层革命:如何用AI算法3分钟完成复杂图像的分层重构
  • 5分钟快速上手猫抓Cat-Catch:浏览器资源嗅探神器的终极指南 [特殊字符]
  • 烘焙食品厂主要分布在哪里?国内主要产区对比
  • 告别混乱!用Ba-IdCode-U插件统一获取UniAppX中的设备ID(OAID/AndroidID/IMEI)
  • MH Markets迈汇帮助可靠些吗?
  • 哪家快递最便宜?比价后我选它 - 快递物流资讯
  • 3个痛点,1个方案:轻松解决抖音内容保存难题
  • CS149ParallelComputing_NotesAssignmentsd
  • 解锁Paperless-ngx全球文档管理能力:多语言配置深度解析
  • 如何快速掌握AlienFX控制:开源工具终极指南解锁Alienware设备完全掌控
  • 技术深度解析:trace.moe 动漫场景向量搜索引擎架构设计与实战应用
  • 告别选择困难症:一张图看懂Activiti5/6/7的核心差异与适用场景
  • 从光线追踪实战看空间划分:手把手用C++实现简易BVH,对比KD-Tree性能差异
  • 膨化食品厂主要分布在哪里?国内主要产区对比
  • 数据开发半年工作后随感
  • python核心基础,这关于基于Moveltg加 Ros2实战Python编程基础实课
  • PowerPC架构SPR访问与AltiVec向量指令集实战解析
  • 2026年厦门正规靠谱婚恋服务/婚介门店TOP6排行大盘点:严肃婚恋平台专项测评 - 互联网科技品牌测评
  • 饮料厂主要分布在哪里?各产区有什么不同?
  • 别再只比性能了!UniApp和Flutter在2024年的真实项目落地成本大比拼
  • 3步破解默认密码困局:用Changeme防御企业安全最薄弱环节
  • 明日方舟终极助手MAA:一键自动化解放你的游戏时间
  • 2026年苏州律师推荐排行榜:刑事辩护/企业法律顾问/离婚财产分割/建筑工程纠纷/债权债务处置/劳动争议仲裁律师最新权威口碑解析 - 品牌发掘
  • 探索fSpy:解锁静态图像相机匹配的终极指南