Python函数:如何使用局部变量和全局变量
在 Python 中,变量的作用域分为局部变量和全局变量。局部变量是在某个函数内部定义的变量,其作用范围只在该函数内部;而全局变量则是在所有函数外部定义的变量,其作用范围为整个程序。
这篇文章将介绍 Python 函数中如何使用局部变量和全局变量。
## 使用局部变量
在 Python 函数中,我们可以通过在函数内部定义变量来创建一个局部变量。如下所示:
def foo():
x = 10
print(x)
在这个函数 foo 中,我们定义了一个局部变量 x,其作用范围只在函数内部。
当函数被调用时,该局部变量就会被创建出来并赋值。在例子中,x 被赋值为 10 并通过 print 函数打印出来。
需要注意的是,局部变量只能在函数内部使用。如果我们在函数外部调用该变量,会引起一个 NameError:
def foo():
x = 10
print(x) # 错误:NameError: name 'x' is not defined
因为 x 只有在函数内部的作用域中才有定义,外部无法访问。
## 使用全局变量
在 Python 中,我们可以通过在函数外部定义变量来创建一个全局变量。如下所示:
x = 10
def foo():
print(x)
foo() # 输出 10
在这个程序中,我们在函数外部定义了一个变量 x,其作用范围为整个程序。在函数 foo 中,我们可以直接访问该变量,并使用 print 函数将其打印出来。
需要注意的是,全局变量可以在函数内部被访问和修改。如果我们在函数内部修改了该变量,那么它会在函数外部被改变:
x = 10
def foo():
global x
x = 20
foo()
print(x) # 输出 20
在这个例子中,我们使用 global 关键字告诉 Python 我们要访问外部的全局变量 x。接着,我们在函数内部将 x 修改为 20。
当调用函数后,我们发现 x 的值已被改变,输出结果为 20。
需要注意的是,如果我们在函数内部定义了一个与全局变量同名的局部变量,那么局部变量会覆盖掉全局变量。如下所示:
x = 10
def foo():
x = 20
print(x)
foo() # 输出 20
print(x) # 输出 10
在这个例子中,我们在函数内部定义了一个与全局变量 x 同名的局部变量。在调用函数后,我们发现输出结果为 20,这是因为我们访问的是局部变量 x。
当我们在函数外部再次访问全局变量 x 时,它的值还是原来的值 10。
## 总结
在 Python 函数中,我们可以通过定义局部变量和全局变量来存储程序中的数据。在使用局部变量时,需要注意作用范围只在函数内部;而在使用全局变量时,需要注意可以在函数内部被访问和修改,但如果定义了与局部变量同名的局部变量,会覆盖掉全局变量。
