Python函数(3)--- 全局,局部和非局部变量,Global 关键字
发布网友
发布时间:2024-08-19 07:30
我来回答
共1个回答
热心网友
时间:2024-08-24 16:39
Python中的变量分为全局、局部和非局部类型,其中全局变量可以在函数内外访问,局部变量则限定在函数内部,而使用global关键字则可以实现对全局变量的修改。接下来我们将深入探讨这些变量的使用和global关键字的应用。
Python中的变量分类关键:全局变量,它们在函数外部或全局范围内声明,允许内外部访问。例如:
python
x = 5 # 全局变量
def foo():
print(x) # 可以访问全局变量x
foo() # 输出:5
然而,若试图在函数内部修改全局变量,如`x = 10`,会引发错误,因为默认情况下,Python将变量视为局部。这时,global关键字派上用场:
python
x = 5
def foo():
global x # 明确声明为全局变量
x = 10
foo() # 输出:10
print(x) # 输出:10
局部变量仅在函数内部有效,如`y = 15`,试图在全局范围内访问会导致错误。为了在函数内部访问,需要将变量提升到函数外部:
python
y = 15 # 局部变量
def foo():
print(y) # 输出:NameError: name 'y' is not defined
# 在foo()外部访问y
print(y) # 输出:15
同时使用全局和局部变量时,全局变量的修改会影响整个程序,局部变量仅限于函数内:
python
x = 5
def foo():
global x
x *= 2
y = x # y是局部变量
print(x, y) # 输出:10 10
foo()
print(x) # 输出:10
当全局和局部变量同名时,它们是独立的,各自作用域内的值不同:
python
x = 5
def foo():
x = 10 # 局部变量
print(x) # 输出:10
print(x) # 输出:5
最后,global关键字在跨模块、嵌套函数和作用域切换时尤为关键,确保变量的正确管理和修改。