在Python中,变量的作用域(Scope)决定了变量的可见性和生命周期。Python有三种基本的作用域:局部作用域(Local)、嵌套作用域(Enclosing)和全局作用域(Global)。此外,还有一个特殊的内置作用域(Built-in)。理解这些作用域对于编写清晰、可维护的代码至关重要。
局部作用域(Local Scope)
defgreet(name):
greeting = "Hello, " + name + "!"
print(greeting) # greeting 在这里可见
greet("Alice")
# greet() 调用后,greeting 在这里不可见
「特点」
局部变量只在函数内部有效。
函数执行完毕后,局部变量会被销毁。
嵌套作用域(Enclosing Scope)
defouter():
x = "local to outer"
definner():
print(x) # inner 可以访问 x
inner()
outer()
「特点」
内部函数可以访问外部函数的局部变量。
外部函数不能访问内部函数的局部变量。
全局作用域(Global Scope)
x = "global"
deftest():
print(x) # 可以访问全局变量 x
test()
「特点」
全局变量在整个程序中都可见。
可以在函数内部修改全局变量,但需要使用
global
关键字。
内置作用域(Built-in Scope)
print("Hello, World!") # 使用内置函数 print
「特点」
内置作用域中的变量和函数是Python预定义的。
它们可以在任何其他作用域中访问。