猿问

函数闭包的问题

def count():

    fs = []

    for i in range(1, 4):

        def f():

             return i*i

        fs.append(f)

    return fs

f1, f2, f3 = count()

print(f1(),f2(),f3())

为什么结果都是9,为什么i就会被调用成3呢,为啥不会顺着下去i*i这样,能不能给个清晰点的解释

我想知道for循环那块具体运行的顺序是个啥 i是咋变的 


Shu澍
浏览 613回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答