Python报错:UnboundLocalError
一个简单的自增计数器示例:
counter = 0
def increment():
  counter += 1
increment()
执行increment()报错:UnboundLocalError。
原因:
Python是是没有变量声明的,当在函数内赋值给变量,变量被认为是本地变量。所以会抛出UnboundError。
解决方法:
定义变量为global变量
counter = 0
def increment():
  global counter
  counter += 1
increment()
python3.x可以使用nolocal
def incrementer():
    counter = 0
    def increment():
        nonlocal counter
        counter += 1
        return counter
    return increment
increment = incrementer()
increment()   # 1
increment()   # 2
 
             
             
             
             
            