我已經找到了這個網頁:爲什麼Python不允許lambda表達式的局部範圍內的語句?
http://effbot.org/pyfaq/why-can-t-lambda-forms-contain-statements.htm
然而,它不是那麼清楚,爲什麼原因。蘭巴達斯是強大的,在我看來,如果有可能在他們的範圍內使用陳述/作業,他們會更多。
例如:(?也許是爲了避免使用它們太多,而不是一個簡單的DEF)
y = 0
f = lambda x: y = 5, x+y # Statements first, expression later.
print f(5) # 10
一定有人考慮這一點,必須有一個原因,它沒有實現。
爲什麼不'lambda x:x + 5'?此外,可能重複http://stackoverflow.com/questions/1233448/no-multiline-lambda-in-python-why-not – jayelm
@JesseMu:雖然我不會說一個確切的重複,但第二個答案是,我相信OP正在尋找。 – Dair
因爲它使可讀性變差。同樣給匿名函數的名字有點違背了這一點。 –