#1th
def createCounter(): i = [0] def counter(): i[0] = i[0] + 1 return i[0] return counter
#2th def createCounter(): i = 0 def counter(): nonlocal i i+=1 return i return counter
第一种方法中,每执行一次createCounter()不是都会执行i=[0]嘛,相当于每次调用函数的时候i[0]=0,为何第二次调用会在第一次的结果上+1.求解答。谢谢
你说的没错,但是从头到尾createCounter()只执行了一次,后面反复调用counterA()相当于只是在调用counter()
Sign in to make a reply
程序员_小迪
#1th
def createCounter(): i = [0] def counter(): i[0] = i[0] + 1 return i[0] return counter
#2th def createCounter(): i = 0 def counter(): nonlocal i i+=1 return i return counter