Python基础(九、重要的全局变量)

文章目录

  • 全局变量是什么?
  • 引用全局变量
  • 修改全局变量
  • 注意事项
  • 结语

全局变量是什么?

首先,全局变量是在函数外部定义的变量,它可以在程序的任何地方被访问。就好像一家人共用的盘子,随手可以拿来用,但也可能因为不小心碎了。

 # 定义一个全局变量
global_variable = "I'm a global variable"def func():print(global_variable)  # 在函数中引用全局变量func()  # 输出:I'm a global variable

引用全局变量

在函数内部,我们可以直接引用全局变量,就像上面的 func() 函数那样。但如果你想要在函数内修改全局变量,就得小心翼翼了。

修改全局变量

咱们知道,在函数内部修改全局变量并不是那么简单。Python 假设当你在函数内创建一个新的同名变量时,你其实是在定义一个局部变量,而不是修改全局变量。这就好比你家里有个小杯子,你在家里重新买了一个小杯子,但外面的大杯子还在原来的位置。

count = 0def increment():global count  # 使用 global 关键字告诉 Python,我们要修改的是全局变量count += 1increment()
print(count)  # 输出:1

注意事项

在使用全局变量的时候,有几个需要格外关注的地方:

1.避免滥用:全局变量像是一把剪刀,方便但危险。滥用全局变量会导致代码难以维护和理解,所以要谨慎使用。
2. 可变对象:如果全局变量是可变对象(比如列表或字典),直接修改它可能会带来意想不到的后果。多多少少会有点像是家里的冰箱,你往里面放了个臭鱼,全家都知道了。
3. global 关键字:在函数内部修改全局变量时,需要使用 global 关键字明确告诉 Python 你要修改的是全局变量,而不是创建一个新的局部变量。

结语

全局变量就像是程序的调味料,适量使用能提味,滥用则会毁了一锅好菜。希望通过本文的介绍,你对 Python 中全局变量的使用有了更清晰的认识。记住,要善待全局变量,它们也会善待你的代码。

希望本文能给你带来一丝轻松和启发。如果你还有任何问题,欢迎随时向我提问!

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

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

相关文章

智能仓储管理系统设计与实现

智能仓储管理系统设计与实现 第一章 绪论 1.1 设计背景 物联网(英文:Internet of Things,缩写:IoT)是万物相连的互联网,即把所有物品通过信息传感设备与互联网连接起来,以实现智能化识别、定位、…

【Unity入门】NGUI和UGUI比较

目录 NGUI组件比较多,比较常用的有UGUI组件比较少,比较常用的有NGUI和UGUI比较 现在主流项目中基本上都是NGUI和UGUI,那么到底选哪个,我们先来做个比较 图集处理功能比较 NGUI需要使用工具手动拼接图片成图集。 UGUI开发期间可以直…

Java网络爬虫拼接姓氏,名字并写出到txt文件(实现随机取名)

目录 1.爬取百家姓1.爬取代码2.爬取效果 2.爬取名字1.筛选男生名字2.筛选女生名字 3.数据处理(去除重复)4.拼接数据5.将数据写出到文件中 1.爬取百家姓 目标网站,仅作为实验目的。 ①爬取姓氏网站: https://hanyu.baidu.com/shic…

小狐狸ChatGPT系统 H5前端底部菜单导航文字修改方法

小狐狸ChatGPT系统后端都前端都是编译过的,需要改动点什么非常难处理,开源版修改后也需要编译后才能使用,大部分会员也不会使用,像简单的修改下底部菜单文字、图标什么的可以对照处理。这里以小狐狸ChatGPT系统1.9.2版本H5端为例&…

JWT signature does not match locally computed signature

1. 问题背景 最近在协助团队小盆友调试一个验签问题,结果还“节外生枝”了,原来不是签名过程的问题,是token的问题。 当你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not…

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

异或运算^简述

异或运算:^ 两个变量之间异或运算时,其二进制位相同取0,不同取1. 示例:a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001) 据此可以推算异或运算"^"有以下特性: a^a0 (0b 0000 0000)…

python使用apscheduler定时任务,固定周几运行程序

在add_job中添加参数day_of_week即可: day_of_week "0"表示:只有周一运行day_of_week "0-4"表示:周一到周五运行day_of_week "0,1,2"表示:周一二三运行 示例程序 from datetime import datet…

IDEA基本设置

本博客适用于纯新手小白,或者刚下载IDEA想要优化开发添加配置的读者。 基础设置 滚轮调整字体大小 打开 IntelliJ IDEA。 转到菜单栏中的 “File” -> “Settings”(Windows/Linux)或 “IntelliJ IDEA” -> “Preferences”&#xff…

2024年 Kubernetes 四大趋势预测

Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。Kubernetes 最大的吸引力之一在于其可扩展性和跨环境的广泛用例。但是&…

CTF show 71

CTF show 71 在源码中可以看到程序把缓冲区内容全部替换成了问号 ​​ ob_get_contents函数把缓冲区内容读到以后赋值给了变量s,类型是字符串。 ob_end_clean()函数清空当前缓冲区并且关闭缓冲区 ​​ 所以展示的结果中全是问号。所以我们需要在读取到文件以后…

计算机网络基础知识分享

计算机网络基础知识分享 发送一个http请求,从客户端到服务器端,都经历了什么? **Ⅰ,浏览器生成消息 ** (1)浏览器输入网址 我们的探索之旅从在浏览器中输入网址开始,网址,准确来说应该叫 UR…

JVM内存结构Java内存模型Java对象模型

悟空老师思维导图:https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM内存结构&&Java内存模型&&Java对象模型 1.1.JVM内存结构 1.2.Java对象模型 Java对象模型…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

问题回复:什么是 Java 中的 Lambda 表达式?有什么应用场景?

Lambda 表达式是 Java 8 引入的一项重要特性,它允许在代码中以更简洁的方式表达匿名函数(也称为闭包)。Lambda 表达式的引入是为了提供一种更简单、更便捷的方式来写匿名内部类。 Lambda 表达式的语法如下: (parameters) -> …

C语言例题3

1.设x、y、z和k都是int型变量,则执行表达式:x(y4,z16,k32)后,x的值为(32); x(y4,z16,k32),x的值为32 理解逗号运算符在c语言中的工作方式:逗号运算…

Visual Basic的故事

Visual Basic(VB)是一种由Microsoft开发的面向对象的事件驱动编程语言。VB的故事始于上世纪90年代初,它在Windows平台上的成功对于图形用户界面(GUI)应用程序的开发产生了深远的影响。以下是关于VB发展过程和相关开发者…

VR全景展示的功能有哪些?适合用于哪些领域?

现如今,VR全景展示技术已经逐渐融入了我们的日常生活中,可能大部分人都还没有意识到VR全景是如何应用的,但其实VR全景针对多个行业的垂直领域都有一定的落地使用。在互联网高速发展的今天,多媒体所包含的种类也越来越多&#xff0…

【美团大数据面试】大数据面试题附答案

目录 1.hdfs读写流程解析 2.hdfs副本机制,三副本原因,副本存放策略 3.hdfs容错机制原理 4.MapReduce执行流程详解 5.spark和mr的区别 6.TopN求法,大数据量无法完全写入内存解决方案,MapReduce实现方法 7.spark部署、调度原…

SpringAOP复习

SpringAOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程。他是一种可以在不修改原来核心代码的情况侠给程序动态统一进行增强的一种技术 SpringAOP:批量对Spring容器中的bean方法做增强,并且这种增强不会与原来方…