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,全局变量已经被修改

相关文章
|
6天前
|
分布式计算 算法 Python
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
Python函数进阶:四大高阶函数、匿名函数、枚举、拉链与递归详解
|
2天前
|
分布式计算 并行计算 安全
在Python Web开发中,Python的全局解释器锁(Global Interpreter Lock,简称GIL)是一个核心概念,它直接影响了Python程序在多线程环境下的执行效率和性能表现
【6月更文挑战第30天】Python的GIL是CPython中的全局锁,限制了多线程并行执行,尤其是在多核CPU上。GIL确保同一时间仅有一个线程执行Python字节码,导致CPU密集型任务时多线程无法充分利用多核,反而可能因上下文切换降低性能。然而,I/O密集型任务仍能受益于线程交替执行。为利用多核,开发者常选择多进程、异步IO或使用不受GIL限制的Python实现。在Web开发中,理解GIL对于优化并发性能至关重要。
16 0
|
2天前
|
缓存 监控 程序员
Python中的装饰器是一种特殊类型的声明,它允许程序员在不修改原有函数或类代码的基础上,通过在函数定义前添加额外的逻辑来增强或修改其行为。
【6月更文挑战第30天】Python装饰器是无侵入性地增强函数行为的工具,它们是接收函数并返回新函数的可调用对象。通过`@decorator`语法,可以在不修改原函数代码的情况下,添加如日志、性能监控等功能。装饰器促进代码复用、模块化,并保持源代码整洁。例如,`timer_decorator`能测量函数运行时间,展示其灵活性。
8 0
|
4天前
|
机器学习/深度学习 人工智能 程序员
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
探索Python宝库:从基础到技能的干货知识(数据类型与变量+ 条件与循环+函数与模块+文件+异常+OOP)
4 0
|
4天前
|
Web App开发 JSON 开发者
程序技术好文:用Python撸点视频背景音乐素材
程序技术好文:用Python撸点视频背景音乐素材
|
5天前
|
数据安全/隐私保护 Python
程序技术好文:猪圈密码python脚本实现
程序技术好文:猪圈密码python脚本实现
12 0
|
5天前
|
Python
经验大分享:python类函数,实例函数,静态函数
经验大分享:python类函数,实例函数,静态函数
10 0
|
5天前
|
Python
|
5天前
|
Python
经验大分享:Python函数返回值
经验大分享:Python函数返回值
|
2月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
50 0

相关实验场景

更多