函数作用域(局部变量和全局变量)(狠狠爱住啦)

在Python中,变量可以分为局部变量和全局变量两种类型,它们的作用域不同,对于程序的执行有着不同的影响。

在函数内部定义的变量属于局部作用域,在函数外部定义的变量属于全局作用域。在函数内部,可以使用 global 关键字来修改全局变量。

局部变量(Local Variables)

局部变量是在函数内部定义的变量,只能在函数内部访问,函数外部无法访问。当函数执行结束后,局部变量的内存空间会被释放。

def my_function():x = 10  # x是局部变量print("局部变量 x:", x)my_function()
# print(x)  # 这里会报错,因为x是局部变量,无法在函数外部访问

全局变量(Global Variables)

全局变量是在函数外部定义的变量,在整个程序中都可以访问。但是,在函数内部如果要修改全局变量的值,需要使用 global 关键字声明。

y = 20  # y是全局变量def my_function():global yy += 5  # 在函数内部修改全局变量y的值print("全局变量 y:", y)my_function()
print("函数外部的全局变量 y:", y)  # 函数执行后全局变量y的值被修改

注意事项

  1. 变量查找顺序: 在函数内部,Python 首先查找局部作用域,然后是嵌套的局部作用域,最后是全局作用域和内置作用域。如果在局部作用域找不到变量,Python 就会尝试在上一层作用域中查找,依此类推。
  2. 全局变量的修改: 在函数内部修改全局变量的值时,需要使用 global 关键字声明,否则会创建一个新的局部变量,而不是修改全局变量的值。
  3. 避免滥用全局变量: 全局变量可以在整个程序中访问,但滥用全局变量可能导致程序结构混乱、难以维护,因此建议尽量避免过多使用全局变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/10387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序地理位置接口申请教程来啦4步学会

小程序地理位置接口有什么功能? 如果我们提审后驳回理由写了“当前提审小程序代码包中地理位置相关接口( chooseAddress、getLocation )暂未开通,建议完成接口开通后或移除接口相关内容后再进行后续版本提审”,如果你也碰到类似问题&#xff…

电火灶是燃气灶吗?节能、环保效果怎么样?

随着科技的进步,厨房中的传统设备也逐步被新型、高效且环保的设备所替代。电火灶,作为一种新型的电火烹饪设备,逐渐进入人们的视野。那么,电火灶是否与传统的燃气灶有所区别?其节能与环保效果又如何呢?下面…

使用 Spring Boot 构建 RESTful API 的最佳实践

在现代的软件开发中,构建高效、稳定的 RESTful API 是非常重要的一环。Spring Boot 是一个流行的 Java 开发框架,它提供了简化开发的工具和约定,使得构建 RESTful API 变得更加简单和快速。 本文将介绍使用 Spring Boot 构建 RESTful API 的…

2024.5.8 关于 SpringCloud —— Ribbon 的基本认知

目录 Ribbon 负载均衡原理 工作流程 Ribbon 负载均衡规则 Ribbon 负载均衡自定义化 代码方式修改规则 配置文件方式修改规则 小总结 Ribbon 设定饥饿加载 Ribbon 负载均衡原理 工作流程 order-service 使用 RestTemplate 发送请求,随后该请求将会被 Ribbon 所…

【强训笔记】day20

NO.1 思路&#xff1a;先判断能对砍几个回合&#xff0c;取最小值&#xff0c;因为回合数是整数&#xff0c;所以可能存在都大于0的情况&#xff0c;再判断一下如果都存活就再对砍一次&#xff0c;直到一家存活或者都死亡。 代码实现&#xff1a; #include<iostream>u…

土地档案管理关系参考论文(论文 + 源码)

【免费】javaEE土地档案管理系统.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89296786 土地档案管理关系 摘 要 研究土地档案管理关系即为实现一个土地档案管理系统。土地档案管理系统是将现有的历史纸质档案资料进行数字化加工处理&#xff0c;建成标准化的…

TikTok海外运营:云手机的四种快速变现方法

随着TikTok用户基数的持续扩大&#xff0c;这个平台已成为全球创业者和品牌的新战场。其用户群接近20亿&#xff0c;并以年轻用户为主力军&#xff0c;市场渗透率逐年攀升。无论是大型组织、知名品牌&#xff0c;还是个人创业者&#xff0c;都无法忽视TikTok所带来的巨大商机。…

视频监控系统中,中心录像服务器的录像文件实际大小和理论值相差很大的问题解决

目录 一、现象描述 二、视频监控的录像文件计算 &#xff08;一&#xff09;计算方法 1、仅视频部分 2、视频和音频部分 3、使用平均码率 &#xff08;二&#xff09;计算工具 1、关注威迪斯特公众号 2、打开“计算容量”的小工具 三、原因分析 &#xff08;一&…

SharePoint 使用renderListDataAsStream方法查询list超过5000时的数据

问题&#xff1a; 当SharePoint List里的数据超过5000时&#xff0c;如果使用常用的rest api去获取数据&#xff0c;例如 await this.sp.web.lists.getByTitle(Document Library).rootFolder.files.select(*, listItemAllFields).expand(listItemAllFields).filter(listItemA…

Python多线程与互斥锁模拟抢购余票的示例

一、示例代码&#xff1a; from threading import Thread from threading import Lock import timen 100 # 共100张票def task():global nmutex.acquire() # 上锁temp ntime.sleep(0.1)n temp - 1print(购票成…

语音网关有哪些?

语音网关是一种网络设备&#xff0c;它使得通过传统的电话网络&#xff08;如公共交换电话网络&#xff0c;PSTN&#xff09;和现代的数据网络&#xff08;如互联网或私有数据网络&#xff09;进行的语音通信成为可能。语音网关的主要作用是在模拟或数字电话信号与数据网络的数…

python基础--推导式和拆包

推导式和拆包 推导式 这是一个快速地生成数据的方式 比如在数组里面存1, 3, 5…99 [x for x in range(1, 100) if x % 2 0]只一个不可以生成元组, 可以用于列表, 字典和集合 这一个循环是可以嵌套的 [(x, y) for x in range(1, 3) for y in range(3)] [(1, 0), (1, 1), (…

论文 学习 Transformer : Attention Is All You Need

目录 概述&#xff1a; 对摘要的理解&#xff1a; 框架解析 按比例缩放的点积注意力 多头注意力机制 前馈神经网络与位置编码 概述&#xff1a; transformer 是一个encoder ——decoder 结构的用于处理序列到序列转换任务的框架&#xff0c;是第一个完全依赖自注意力机制…

1分钟搞定Pandas DataFrame创建与索引

1.DataFrame介绍 DataFrame 是一个【表格型】的数据结构,可以看作是【由Series组成的字典】(共用同一个索引)。DataFrame 由按一定顺序排列的多列数据组成。设计初衷是将 Series 的使用场景从一维扩展到多维。DataFrame 既有行索引,也有列索引。 行索引:index 列索引:co…

2万字干货:如何从0到1搭建一套会员体系(2)

2.用户等级 还是一样&#xff0c;我们为什么要搭建用户等级&#xff1f; 一个国家有几亿人口的时候你怎么来管理&#xff1f;老祖宗秦始皇给出了我们答案&#xff1a;郡县制。发展到现在则演进成了省-市-区县-乡镇(街道)-村(社区)5层行政治理结构。 产品同理&#xff0c;当你…

贪心算法----摆动序列

今日题目&#xff1a;leetcode376 点击跳转题目 观察样例2&#xff1a; 发现最长摆动序列都是极大值和极小值 再加上两个端点&#xff0c;那么我们保证每次都能选择到每个极值点&#xff0c;就能从局部最优推广全局最优了&#xff01; 但是还有一些细节情况需要注意&#xff…

P2036 PERKET

题目描述: Perket 是一种流行的美食。为了做好 Perket&#xff0c;厨师必须谨慎选择食材&#xff0c;以在保持传统风味的同时尽可能获得最全面的味道。你有 &#x1d45b;n 种可支配的配料。对于每一种配料&#xff0c;我们知道它们各自的酸度 &#x1d460;s 和苦度 &#x1…

Android内核之解决报错:error: ISO C90 forbids mixing declarations and code(七十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

c语言之替换数据类型名

在c语言里&#xff0c;是用typedef语句替换数据类型名 就像定义一个变量时&#xff0c;只是在前面加上typedef语句 #include<stdio.h>int main() {typedef int y;typedef char c;y a1;c bw;printf("%d\n",a);printf("%c\n",b); } 这这个代码里&am…

线程池原理简谈

1&#xff0c;概述 线程池是一种池化技术&#xff0c;本质是减少线程对象创建销毁的开销&#xff0c;同对象池、连接池一样&#xff0c;达到对象复用的效果。那么线程池怎么复用呢&#xff1f;即一个或多个Thread对象怎么执行更多的Task&#xff1f;这里面的关键就涉及到了阻塞…