Fw: [翻譯] Google 建議的 Python 風格指南 10

作者: sandwichC ( )   2013-05-05 19:44:30
※ [本文轉錄自 Python 看板 #1HXaOJ0B ]
作者: sandwichC (沒回應=掛站) 看板: Python
標題: [翻譯] Google 建議的 Python 風格指南 10
時間: Sun May 5 19:44:15 2013
原文網址: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。

Links booklink

Contact Us: admin [ a t ] ucptt.com