在 Python 中,作用域(Scope)是指程序中变量的可见范围和生命周期。理解作用域有助于编写更加健壮和可维护的代码。Python 中主要有以下几种作用域:
此外,global
关键字可以用来在局部作用域中声明全局变量。以下是详细说明和示例。
局部作用域指函数内部定义的变量。这些变量只能在函数内部访问。
def my_function():
x = 10 # 局部变量 x
print(x)
my_function() # 输出: 10
print(x) # 报错: NameError: name 'x' is not defined
全局作用域指在函数外部定义的变量,这些变量可以在整个模块中访问。
x = 20 # 全局变量 x
def my_function():
print(x) # 访问全局变量 x
my_function() # 输出: 20
print(x) # 输出: 20
内嵌作用域指嵌套函数中,外部函数的局部变量。这些变量在嵌套函数中可见。
def outer_function():
x = 30 # 外部函数的局部变量
def inner_function():
print(x) # 访问外部函数的局部变量
inner_function()
outer_function() # 输出: 30
内建作用域是 Python 解释器内置的命名空间,包含了所有内置函数和异常。
print(len("hello")) # len 是内建函数
global
关键字在局部作用域中,使用 global
关键字可以声明一个全局变量。这使得在函数内部可以对全局变量进行修改。
x = 40 # 全局变量 x
def my_function():
global x # 声明 x 为全局变量
x = 50 # 修改全局变量 x
print(x) # 输出: 50
my_function()
print(x) # 输出: 50
x = 1 # 全局变量 x
def outer_function():
x = 2 # 外部函数的局部变量 x
def inner_function():
nonlocal x # 声明 x 为外部函数的局部变量
x = 3 # 修改外部函数的局部变量 x
print("inner_function x:", x) # 输出: 3
inner_function()
print("outer_function x:", x) # 输出: 3
outer_function()
print("global x:", x) # 输出: 1
在这个示例中:
x = 1
是全局变量。outer_function
中的 x = 2
是外部函数的局部变量。inner_function
中使用 nonlocal x
修改外部函数的局部变量。global
关键字用于在局部作用域中声明全局变量,允许对全局变量进行修改。理解作用域有助于避免变量命名冲突,提高代码的可读性和可维护性。
原文链接:codingdict.net