Python中变量的作用域决定了在何处可以访问该变量。主要的作用域有:
- 全局作用域
在整个程序可访问,用global声明。
## python www.itzhimei.com 代码
global a
a = 1
- 函数作用域
变量在函数中定义,只在函数内可访问。
## python www.itzhimei.com 代码
def test():
b = 2
print(b) # Error
- 嵌套函数作用域
内部函数可访问外部函数的变量,反之则不行。
## python www.itzhimei.com 代码
def outer():
x = 1
def inner():
print(x)
inner()
- 类作用域
类中变量对实例可见,用self访问。
## python www.itzhimei.com 代码
class Test:
x = 1
def foo(self):
print(self.x)
按LEGB规则查找:
- Local: 函数内的作用域
- Enclosed: 外部嵌套函数的作用域
- Global: 当前脚本的全局作用域
- Built-in: Python内置作用域
了解作用域非常重要,避免访问未定义的变量。