新手学Python避坑,学习效率狂飙! 十四、全局变量和局部变量
在 Python 里,变量的作用域指的是变量可被访问的范围。Python 中有两种主要的变量作用域,分别是全局变量和局部变量,下面对它们的一些分享。
全局变量
全局变量是在函数外部定义的变量,其作用域为整个程序,在程序的任何地方都可以访问。以下是一个简单的示例:
python
# 定义全局变量
global_variable = 10
def print_global_variable():
print("全局变量的值是:", global_variable)
print_global_variable() # 输出: 全局变量的值是: 10
在这个例子中,global_variable 是全局变量,在函数 print_global_variable 里可以直接访问它。
局部变量
局部变量是在函数内部定义的变量,其作用域仅限于定义它的函数内部,在函数外部无法访问。下面是一个局部变量的示例:
python
def print_local_variable():
# 定义局部变量
local_variable = 20
print("局部变量的值是:", local_variable)
print_local_variable() # 输出: 局部变量的值是: 20
# 下面这行代码会报错,因为 local_variable 是局部变量,在函数外部无法访问
# print(local_variable)
在这个例子中,local_variable 是局部变量,只能在 print_local_variable 函数内部访问。
全局变量和局部变量的异同
相同点
- 二者都是用来存储数据的,并且都有自己的名称和对应的值。
不同点
- 作用域:全局变量的作用域是整个程序,而局部变量的作用域仅限于定义它的函数内部。
- 生命周期:全局变量的生命周期是整个程序的运行期间,而局部变量的生命周期从函数被调用时开始,到函数执行结束时结束。
避坑分享
1. 在函数内部修改全局变量
如果要在函数内部修改全局变量的值,需要使用 global 关键字。示例如下:
python
global_variable = 10
def modify_global_variable():
global global_variable
global_variable = 20
modify_global_variable()
print("修改后的全局变量的值是:", global_variable) # 输出: 修改后的全局变量的值是: 20
2. 避免局部变量和全局变量同名
当局部变量和全局变量同名时,在函数内部使用的是局部变量,而不是全局变量。示例如下:
python
global_variable = 10
def print_variable():
global_variable = 20
print("函数内部的变量的值是:", global_variable)
print_variable() # 输出: 函数内部的变量的值是: 20
print("全局变量的值是:", global_variable) # 输出: 全局变量的值是: 10
综上所述,在使用全局变量和局部变量时,要清楚它们的作用域和生命周期,避免因变量名冲突或者未正确使用 global 关键字而引发错误。
感谢大家对《新手学Python避坑,学习效率狂飙!》系列的点赞、关注和收藏今天这编是第十四个分享,前面还有十三个,大家可以关注下。