【Python】Python作用域 使用方法讲解

Python中变量的作用域决定了在何处可以访问该变量。主要的作用域有:

  1. 全局作用域
    在整个程序可访问,用global声明。
## python www.itzhimei.com 代码
global a
a = 1
  1. 函数作用域
    变量在函数中定义,只在函数内可访问。
## python www.itzhimei.com 代码
def test():
  b = 2

print(b) # Error
  1. 嵌套函数作用域
    内部函数可访问外部函数的变量,反之则不行。
## python www.itzhimei.com 代码
def outer():
  x = 1

  def inner():
    print(x)

  inner()  
  1. 类作用域
    类中变量对实例可见,用self访问。
## python www.itzhimei.com 代码
class Test:
  x = 1

  def foo(self):
    print(self.x)

按LEGB规则查找:

  • Local: 函数内的作用域
  • Enclosed: 外部嵌套函数的作用域
  • Global: 当前脚本的全局作用域
  • Built-in: Python内置作用域

了解作用域非常重要,避免访问未定义的变量。