Discuss / Python / 交作业

交作业

Topic source

#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.求解答。谢谢

ALIETOZ

#3 Created at ... [Delete] [Delete and Lock User]

你说的没错,但是从头到尾createCounter()只执行了一次,后面反复调用counterA()相当于只是在调用counter()


  • 1

Reply