Discuss / Python / 自己的小小理解

自己的小小理解

Topic source
def count():
    def f(j):
        def g():
            return j*j
        return g
    fs = []
    for i in range(1, 4):
        fs.append(f(i)) # f(i)立刻被执行,因此i的当前值被传入f()
    return fs

其实count()执行后,是返回一个这样的list【g(j1),g(j2),g(j3)】,而不是【f(j1),f(j2),f(j3)】。然后>>> f1, f2, f3 = count()好像是多重赋值,f1,f2,f3分别指向list中的g(j1),g(j2),g(j3)。

return f是返回函数,而return f()是直接执行函数。


  • 1

Reply