def f(x):
return x <5
[x for x in filter(lambda x: f(x), ls)] #[0,1,2,3,4]
def g(x):
return lambda: x<5
[x for x in filter(lambda x: g(x), ls)] # [0,1,2,3,4,5,6,7,8,9]
def h(x):
return lambda x=x: x<5
[x for x in filter(lambda x: h(x), ls)] # [0,1,2,3,4,5,6,7,8,9]
任何人都可以解釋爲什麼g和h不等於f? 我認爲它們應該是等效的,因爲X在g和h應綁定到的,因爲它們在所定義的環境的X(見本question on closures)lambdas的綁定
'F'返回一個布爾值。 'g'和'h'返回功能。他們爲什麼會相當? – user2357112
條件語句中的函數始終視爲true。 – yoku2010