Python入门教程(二十五)Python的作用域
在 Python 中,变量并不是在程序中定义的地方都可以访问的,访问权限与变量的定义位置有关,即变量的作用域。Python 的变量作用域分为四种:
- 局部作用域
- 闭包函数外的函数
- 全局作用域
- 内置作用域
局部作用域
函数内部定义的变量叫做局部变量。只能在函数内部访问,函数外部无法访问。
def foo():
x = 10 # 局部变量
print("x =", x)
foo() # 输出 x = 10
print("x =", x) # 函数外部无法访问变量 x,会报错
闭包函数外的函数
如果在函数内部定义的变量需要在函数外部使用,就需要用到闭包函数外的函数(nonlocal)。
def outer():
x = 10 # 局部变量
def inner():
nonlocal x # 声明 x 为外层函数的变量
x += 1
print("inner x =", x)
inner()
print("outer x =", x) # 输出 outer x = 11
outer()
全局作用域
在函数外部定义的变量叫做全局变量。可以在整个程序中都访问。
x = 10 # 全局变量
def foo():
print("x =", x) # 函数内部可以访问全局变量
foo() # 输出 x = 10
print("x =", x) # 输出 x = 10
如果在函数内部再次定义 x,会隐式地创建一个新的局部变量 x,而非修改全局变量 x 的值。
x = 10 # 全局变量
def foo():
x = 20 # 创建了一个新的局部变量 x
print("x =", x)
foo() # 输出 x = 20
print("x =", x) # 输出 x = 10,因为全局变量 x 的值并未被修改
内置作用域
Python 中有一些内置函数和变量,这些函数和变量可以在任何地方使用。例如内置函数 print()
、内置变量 True
和 False
等等。这些函数和变量的访问权限最高,被称为内置作用域。
def foo():
print(max([2, 3, 1, 5])) # 内置函数 max()
print(min([2, 3, 1, 5])) # 内置函数 min()
print(True) # 内置变量 True
print(False) # 内置变量 False
foo()
执行上述代码,输出如下:
5
1
True
False
以上就是关于 Python 变量作用域的简单介绍。在代码编写过程中,要注意变量的作用域,避免变量的定义混淆,导致程序出现错误。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python入门教程(二十五)Python的作用域 - Python技术站