错误示范:
def createCounter(): i=0 def counter(): i += 1 return i return counter 原来在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。
换成引用就没问题了:
def createCounter(): a=[0] def counter(): a[0] += 1 return a[0] return counter
Sign in to make a reply
英睿都督
错误示范:
def createCounter(): i=0 def counter(): i += 1 return i return counter 原来在python的函数中和全局同名的变量,如果你有修改变量的值就会变成局部变量,在修改之前对该变量的引用自然就会出现没定义这样的错误了,如果确定要引用全局变量,并且要对它修改,必须加上global关键字。
换成引用就没问题了:
def createCounter(): a=[0] def counter(): a[0] += 1 return a[0] return counter