def count():
fs = []
for i in range(1, 4):
def f(j):
def g():
return j*j
return g
r = f(i)
fs.append(r) #fs作为列表,为什么可以append(r)?(而r是f所返回的函数)
return fs #个人的想法应该是fs.append(r())
f1, f2, f3 = count()
print f1(), f2(), f3()
想弄明白的是:这里传入append的r是以什么形式传入的呢
谢谢各位指教:D
是以函数定义的形式传入的, 类似于延迟调用, 你个例子不太明显,
你可以将函数中的return r的r 看成是一个变量, 不过这个变量保存的是函数的定义,
后面通过x(),才是对函数的真正调用