Python变量作用域:局部变量、全局变量与global关键字详解

发布时间:2026/9/1 19:24:42

Python变量作用域:局部变量、全局变量与global关键字详解
变量作用域局部变量、全局变量与关键字一个编程里相当重要的概念是变量作用域, 其决定程序里变量的可访问性, 理解变量作用域能助您避免错误, 还能编写更清晰的代码, 本教程会介绍局部变量、全局变量以及关键字。什么是变量作用域变量在程序里的可见以及可访问范围被称作变量作用域, 简略来讲, 它界定了在代码中的哪部分能够运用特定的变量, 在其中的变量作用域主要分成两种, 分别是局部作用域和全局作用域。局部变量函数之中所定义的被称作局部变量的变量, 它们唯在定义自身的那个函数范围之内才具备有效性, 于函数外部是根本没有办法去访问这些变量的, 这所表达的意思就是, 要是您于某一个函数当中创建了一个变量, 那么它仅仅能够在该函数的内部被加以使用。示例def my_function(): x 10 # x是局部变量 print(f在函数内部: x {x}) my_function() print(f在函数外部: x {x}) # 这会引发NameError因为x在函数外部不可见于上部之代码里, 变量x于函数之内进行定义, 因而它属于局部变量。去尝试于函数外头打印x, 则会引发错误, 缘由于x不在当下之作用域以内。全局变量全局变量, 其为位于函数外部所定义的变量, 它们在整个程序范围之内皆是可见的, 能够从任何一处来进行访问, 其中也涵盖函数的内部, 这使得您能够于不同的函数之间实现数据的共享。示例y 20 # y是全局变量 def another_function(): print(f在函数内部: y {y}) # 可以访问全局变量y another_function() print(f在函数外部: y {y}) # 同样可以访问全局变量y这里, y是在函数的外部进行定义的, 因此它属于全局性的变量能够在函数的内部以及函数的外部进行访问。关键字有时候, 您也许会想要于函数内部去修改全局变量当中的值, 在默认情形之下, 要是您于函数内部针对一个全局变量进行重新赋值的操作, 那么就会创建出一个新的局部变量, 而可不是去修改全局变量, 这样的情况有可能会引发混淆。通过使用关键字, 您进而能够告知, 函数内部的变量所引用的乃是全局变量, 如此一来便允许您于函数之中着手对其进行修改。示例z 30 # z是全局变量 def modify_function(): global z # 使用global关键字声明z是全局变量 z 40 # 现在修改全局变量z print(f在函数内部修改后: z {z}) modify_function() print(f在函数外部: z {z}) # 输出修改后的值如果不使用关键字z 30 def modify_function_without_global(): z 40 # 这创建了一个新的局部变量而不是修改全局变量z print(f在函数内部: z {z}) # 输出40 modify_function_without_global() print(f在函数外部: z {z}) # 输出30全局变量z未改变常见注意事项总结经由把控这些概念, 您能够更具自信地处置当中的变量, 规避常见 , 持续练习中, 试着于各异场景里头运用这些概念,籍此去加深理解。进行更为深入的学习, 去探索, 那处于探索过程当中的内置函数, 以及模块, 还有类作用域, 以此来扩展您所拥有的知识。

相关新闻

A*与DWA结合:移动机器人路径规划完整Python实现

A*与DWA结合:移动机器人路径规划完整Python实现

2026/9/1 19:24:42

简介:本资源是一套基于ROS框架的机器人路径规划实战代码包,面向智能机器人开发初学者与ROS实践者,解决全局路径规划与动态避障协同实现的核心问题。资源共18个文件,以15个YAML配置文件为主(涵盖costmap、global_planne…

Python 堆、栈和队列详解

Python 堆、栈和队列详解

2026/9/1 19:24:42

队列:1、队列属于一种特殊线性表, 其特殊点在于, 仅允许于表的前端也就是front处做删除操作, 而在表的后端也就是rear处做插入操作, 跟栈相同, 队列是一种操作受限的线性表。实施插入操作的一端称作队尾, 实施删除操作的一端称作队头。栈(stack):1、栈, …

C语言三大标准流与三种缓冲模式

C语言三大标准流与三种缓冲模式

2026/9/1 19:24:41

一文搞懂 C 语言三大标准流与三种缓冲模式(stdin / stdout / stderr)标签:C语言|标准输入输出|缓冲机制|编程基础很多 C 语言初学者刚接触 printf、scanf 时,并不清楚数据在程序与设备之间到底是…

工业喷嘴微孔焊堵了?精密激光焊接三招护住

工业喷嘴微孔焊堵了?精密激光焊接三招护住

2026/9/1 20:34:45

这篇文章讲的是:工业雾化喷嘴、喷油嘴、喷气嘴等带微孔(0.1-2mm)的精密零部件,如何在激光焊接过程中保证微孔不被焊接飞溅或熔融金属堵塞。一个燃油喷嘴上有6-12个直径0.15-0.3mm的微孔。这些微孔决定了燃油的雾化效果——孔的形状…

新手向 OpenClaw 安装教程,路径与避坑要点汇总

新手向 OpenClaw 安装教程,路径与避坑要点汇总

2026/9/1 20:34:45

OpenClaw 一键集成包|图形化搭建本地 AI 智能体🦞 适配系统:Windows10/11 64 位、macOS 12 及以上 当前版本:Windows v3.1.0、macOS v2.7.9 安装包大小:约 45.8MB 下载地址 Windows3.1.0 版本:https://x…

零基础上手 OpenClaw,Windows 环境搭建自动化 AI 工具

零基础上手 OpenClaw,Windows 环境搭建自动化 AI 工具

2026/9/1 20:34:45

OpenClaw 本地 AI 智能体|Windows 3.1.0 一键部署实操指南 前言 在开源 AI 生态当中,OpenClaw 也被大家叫做小龙虾 AI,是一款可以直接操控电脑的智能体项目。不同于普通对话式大模型,它可以读懂自然语言指令,自动拆解…

告别百万域名库:用eBPF动态DPI让软路由流量识别更高效

告别百万域名库:用eBPF动态DPI让软路由流量识别更高效

2026/9/1 20:34:45

最近我帮朋友整理一台软路由,现象很有意思:平时跑满千兆都没压力的设备,最近网页频繁打不开,CPU 动不动就飙到 90%,内存也在持续上涨。打开进程一看,负责流量识别的服务正在后台一遍一遍地遍历一张百万行级…

AI原生开发推理成本控制:从部署到调优的实战指南

AI原生开发推理成本控制:从部署到调优的实战指南

2026/9/1 20:34:45

AI原生开发这两年讨论很多,但真正把项目从 Demo 推到线上的人会发现,第一个卡住的地方往往不是模型能力,而是推理成本。这里说的推理成本不只是 API 账单,也包括本地部署时的显存、内存、GPU 占用、任务排队时间,以及批…

NL2SQL 落地怎么选?四条技术路线一张图讲透(附安全实践)

NL2SQL 落地怎么选?四条技术路线一张图讲透(附安全实践)

2026/9/1 20:24:45

理解: LLM直出:大模型包揽一切,落得快但易"漂"。DSL填槽:大模型抽要素,固定模板拼SQL,主打稳定可控。MQL定口径:大模型落指标,语义层算聚合,主打可信统一。LP…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/1 1:53:39

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/31 17:18:46

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…