Discuss / Python / 题目解答

题目解答

Topic source
def createCounter():
    x = 0
    def counter():
        nonlocal x
        while True:
            x = x + 1
            break
        return x
    return counter


def createCounter():
    x = [0]
    def counter():
        x[0] += 1
        return x[0]
    return counter

第二次执行的时候,x[0]就等于1了吗,不是x[0] = 0么?

#?头保命,我也是萌新

利用步入观察发发现,把counter返回给couterA以后,以后每次调用counterA,只会调用counter函数内部内容。所以就是 x = [0]那步,好像都不走了。


  • 1

Reply