Discuss / Python / 简单的改一下就可以了

简单的改一下就可以了

Topic source

J0sk1

#1 Created at ... [Delete] [Delete and Lock User]
def count():
    fs = []
    for i in range(1, 5):
        def f():
             return i*i
        fs.append(f())#此处调用f()就可以了
    return fs
f1 ,f2 ,f3 ,f4 = count()
print(f1,f2,f3,f4)
#输出 1,4,9,16

你这个返回的已经不是函数列表了

这个结果正确 ,但是并不是闭包结果 print(f1)可以直接输出结果1 而不是print(f1())才能输出结果

结果是对的,但是这个改动已经失去意义了,f()是个确定的值了,返回的fs=【1,4,9】.没意义了。

yedihh

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

f1 ,f2 ,f3 ,f4 = count()执行时,fs列表的结果已经计算出来了,分别赋值给f1 ,f2 ,f3 ,f4,是这样理解吧


  • 1

Reply