- Python
python的局部变量和全局变量
- 2025-8-11 15:00:30 @
在Python中,变量的作用域(可见范围)分为局部变量和全局变量,它们的主要区别如下:
1. 局部变量
- 定义:在函数内部定义的变量,只在该函数内部有效
- 作用范围:仅在定义它的函数内部可见和使用
- 生命周期:随着函数的调用而创建,随着函数执行结束而销毁
示例:
def my_function():
# 这是局部变量
local_var = "我是局部变量"
print(local_var) # 可以在函数内部访问
my_function()
# print(local_var) # 这里会报错,因为在函数外部无法访问局部变量
2. 全局变量
- 定义:在函数外部定义的变量,作用于整个程序
- 作用范围:在整个模块(文件)中都可以访问,包括函数内部(需要特殊声明)
- 生命周期:从程序运行时创建,直到程序结束才销毁
示例:
# 这是全局变量
global_var = "我是全局变量"
def my_function():
# 在函数内部访问全局变量
print(global_var)
my_function() # 可以访问全局变量
print(global_var) # 在函数外部也可以访问
3. 全局变量的修改
如果需要在函数内部修改全局变量的值,必须使用global
关键字声明:
global_var = 10
def modify_global():
# 声明要修改的全局变量
global global_var
global_var = 20 # 修改全局变量的值
modify_global()
print(global_var) # 输出 20,全局变量已被修改
如果不使用global
关键字,函数内部会创建一个同名的局部变量,而不会影响全局变量:
global_var = 10
def modify_global():
# 这里创建了一个同名的局部变量,不会影响全局变量
global_var = 20
print("函数内部的变量:", global_var) # 输出 20
modify_global()
print("全局变量:", global_var) # 仍然输出 10
4. 注意事项
- 尽量避免过多使用全局变量,会降低代码的可读性和可维护性
- 函数内部可以直接访问全局变量,但修改时必须使用
global
声明 - 当局部变量与全局变量同名时,函数内部会优先使用局部变量
- 在嵌套函数中,可以使用
nonlocal
关键字来修改外层函数的变量(非全局变量)
合理使用局部变量和全局变量,可以使代码结构更清晰,减少变量名冲突。
0 条评论
目前还没有评论...