程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

新手学Python避坑,学习效率狂飙! 十四、全局变量和局部变量

hfteth 2025-06-09 22:16:45 技术文章 1 ℃

在 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避坑,学习效率狂飙!》系列的点赞、关注和收藏今天这编是第十四个分享,前面还有十三个,大家可以关注下。

Tags:

最近发表
标签列表