如下示例:
li = [lambda :x for x in range(10)]
print(type(li))
for i in li:
print( i,i())
结果如下:
<class 'list'>
<function <listcomp>.<lambda> at 0x000000000117A840> 9
<function <listcomp>.<lambda> at 0x000000000117A8C8> 9
<function <listcomp>.<lambda> at 0x000000000117A950> 9
<function <listcomp>.<lambda> at 0x000000000117A9D8> 9
<function <listcomp>.<lambda> at 0x000000000117AA60> 9
<function <listcomp>.<lambda> at 0x000000000117AAE8> 9
<function <listcomp>.<lambda> at 0x000000000117AB70> 9
<function <listcomp>.<lambda> at 0x000000000117ABF8> 9
<function <listcomp>.<lambda> at 0x000000000117AC80> 9
<function <listcomp>.<lambda> at 0x000000000117AD08> 9
li的类型是一个列表,里面的每一个元素都是一个函数,想象中li中函数的返回值应依次是0-9,因为以上代码等价如下:
li = []
for x in range(10):
def func():
return x
# print(func,func())
li.append(func)
for i in li:
print(i,i())
但是li中每个元素的返回值都是9,不理解!暂hold!
网友评论