如下示例:
li = [lambda :x for x in range(10)]
print(type(li))
for i in li:
print( i,i())
結(jié)果如下:
<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的類型是一個列表,里面的每一個元素都是一個函數(shù),想象中l(wèi)i中函數(shù)的返回值應(yīng)依次是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!