Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。

简介: 【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。

在Python中,全局变量和局部变量是两种不同类型的变量,它们的主要区别在于它们的作用域和生命周期。

全局变量:

全局变量定义在函数之外,通常是在程序的顶部。
它们可以在整个程序的任何地方被访问和修改,只要是在其被声明的作用域内。
它们在程序的整个运行期间都存在,即它们的生命周期是整个程序的运行时间。
例如:

python
global_var = 10

def my_function():
print(global_var) # 这里可以访问全局变量

my_function() # 输出: 10
局部变量:

局部变量定义在函数内部。
它们只能在定义它们的函数内部被访问。一旦函数执行完毕,局部变量就会被销毁,除非它们被返回或者被赋值给全局变量。
它们的生命周期是从函数被调用的那一刻开始,到函数返回的那一刻结束。
例如:

python
def my_function():
local_var = 20
print(local_var) # 这里可以访问局部变量

my_function() # 输出: 20

在这里尝试访问local_var会导致错误,因为它是一个局部变量,只在my_function()内部存在。

注意:虽然全局变量在整个程序中都是可见的,但在函数内部,如果你尝试修改一个全局变量,Python默认会认为你正在创建一个新的局部变量,除非你明确地使用global关键字声明。例如:

python
global_var = 10

def my_function():
global_var = 20 # 这里实际上创建了一个新的局部变量,而不是修改全局变量
print(global_var) # 输出: 20

my_function()
print(global_var) # 输出: 10,全局变量没有被修改
如果你想在函数内部修改全局变量,你需要使用global关键字来告诉Python你正在引用的是全局变量:

python
global_var = 10

def my_function():
global global_var # 声明我们正在引用全局变量
global_var = 20 # 现在我们修改的是全局变量
print(global_var) # 输出: 20

my_function()
print(global_var) # 输出: 20,全局变量已经被修改

相关文章
|
5天前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
48 28
|
4天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
18 3
|
8天前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
22 2
|
24天前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
71 6
|
1月前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
50 18
|
27天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
56 8
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
18天前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序
|
7月前
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
|
7月前
|
搜索推荐 区块链 开发者
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件