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

相关文章

python变量作用域详解

python变量的一生包括变量的申明,引用和修改及消亡,此文主要关注变量的引用和修改。变量从作用域来分主要包括全局变量,嵌套(外部)变量,局部变量。一,全局变量,一般定义在模块顶部,对整个模块都生效,...

看一看,Python这四种作用域你都知道吗?

点赞、收藏、加关注,下次找我不迷路一、啥是作用域?先打个比方比如说,你在自己的卧室(相当于一个小空间)里放了一本书,这本书在卧室里随便你怎么看,这就是这本书在卧室这个 "作用域" 内...

一文读懂Python中的全局变量局部变量和作用域

通常小白在写代码时,只知道引用变量来应对一些基础的编码问题,当面试官问及局部变量和全局变量的具体细节时,就会一脸懵逼,傻傻分不清楚!其实想要彻底了解局部变量和全局变量的关系,本质是大家需要明白何为作用...

新手学Python避坑,学习效率狂飙! 五、Python循环中的变量作用域

在 Python 里,变量的作用域指的是变量可被访问的代码范围。循环里的变量作用域在 Python 中是个常见且关键的概念。一、变量作用域Python 里的变量作用域主要有局部作用域和全局作用域。1、...

新手易犯错的地方Python作用域

好多新手一开始比较容易犯错的地方理解作用域对于编写高效的python代码十分重要现在就讲下四种作用域,按照从内到外的顺序:局部作用域(Local) - 在函数内部定义的变量嵌套作用域(Enclosin...

Python闭包实现:nonlocal关键字与变量作用域

在Python编程中,闭包是一个强大而优雅的特性,它允许函数捕获并记住其定义环境中的变量值。通过闭包,可以创建更加灵活和模块化的代码结构。而nonlocal关键字的引入,则进一步增强了Python闭包...