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】.没意义了。
f1 ,f2 ,f3 ,f4 = count()执行时,fs列表的结果已经计算出来了,分别赋值给f1 ,f2 ,f3 ,f4,是这样理解吧
Sign in to make a reply
J0sk1