def count():
fs = []
for i in range(1, 4):
def f():
return i*i
fs.append(f)
return fs
f1, f2, f3 = count()
f1()
f2()
f3()
count函数的意义是生成了3个函数放入列表中,然后返回list
通过f1,f2,f3获取list中的三个函数
由于函数的执行是直到调用f1(),f2(),f3()时候才开始,函数的内容都是return i*i, 由于包闭的原因,i的值都为3,所以三个函数输出的结果都为9
调试信息
[root@localhost ~]# more count.py
def count():
fs = []
for i in range(1,4):
def f():
return i*i
fs.append(f)
print fs
return fs
f1, f2,f3 = count()
print "f1=",f1
print f1()
print "f2=",f2
print f2()
print "f3=",f3
print f3()
[root@localhost ~]# python count.py
[<function f at 0x1ddd5140>]
[<function f at 0x1ddd5140>, <function f at 0x1ddd51b8>]
[<function f at 0x1ddd5140>, <function f at 0x1ddd51b8>, <function f at 0x1ddd5230>]
f1= <function f at 0x1ddd5140>
9
f2= <function f at 0x1ddd51b8>
9
f3= <function f at 0x1ddd5230>
9
[root@localhost ~]#