``` def count(): fs = [] for i in range(1,4): def f(): return i*i fs.append(f) return fs
def count(): def f(j): def g(): return j*j return g fs = [] for i in range(1,4): fs.append(f(i)) return fs f1,f2,f3 = count() print(f1()) print(f2()) print(f3())
` fs.append(f) 为什么不是fs.append(f())
f()表示的是调用函数后的函数返回值,而f才是表明返回函数, 改成f(),得到的count()便是一个包含三个数值的list, 而不是三个函数对象的list。
Sign in to make a reply
autonote
``` def count(): fs = [] for i in range(1,4): def f(): return i*i fs.append(f) return fs
def count(): def f(j): def g(): return j*j return g fs = [] for i in range(1,4): fs.append(f(i)) return fs f1,f2,f3 = count() print(f1()) print(f2()) print(f3())
` fs.append(f) 为什么不是fs.append(f())