看板 Python 關於我們 聯絡資訊
原文網址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html * Lambda Functions 一行就結束的程式可用 lambda 函式。 釋義: lambda 定義匿名函式,使用 expression 而非 statement (編案:expression 指 由常數或變數、運算子等形成的組合,如:range(5), 2 * math.pi * r, 1 + 1 等;statement 則指任何可成為一行或多行的程式片段,如:li = range(5), circum = 2 * math.pi * r, a = 1 + 1 等)。lambda 函式通常用來替 map() 或 filter() 等高階函式定義 call back 函式或操作運算。 優點: 方便。 缺點: 相較於區域函式,lambda 函式較難閱讀及除錯。因為匿名,所以 stack trace 時 更難理解。可表達的能力有限,因為 lambda 函式通常只包含一個 expression。 決策: 單行能完成的函式可以使用 lambda 函式。若 lambda 函式內的程式碼大於 60-80 個字元,最好使用一般的函式或嵌套函式。 若是常用的運算,如:乘法,在 operator module 中很可能有現成的函式可用, 儘量使用這些函式來取代 lambda 函式。如:使用 operator.mul 來取代 lambda x, y: x * y。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 68.232.121.105
icycandle:這樣lambda的定位就很清晰了 05/06 01:12
timTan:覺得用 operator 就非常好看 05/07 08:07