一、lambda函式
1、lambda函式基礎:
lambda函式也叫匿名函式,即,函式沒有具體的名稱,而用def建立的方法是有名稱的。如下:
"""命名的foo函式
"""def foo():return
'beginman'#
python中單行引數可以和標題寫在一行
"""上面的只是簡單的用lambda建立乙個函式物件,並沒有儲存它也沒有呼叫它,時刻會被**了。這裡我們儲存並呼叫:lambda關鍵字建立匿名函式,該表示式同以上函式
"""lambda:'
beginman
'
bar = lambda:'從上面幾個例子中,可易理解python lambda語法:beginman
'print bar() #
beginman
lambda [arg1[,arg2,arg3....argn]]:expressionlambda語句中,冒號前是引數,可以有多個,用逗號隔開,冒號右邊的返回值。lambda語句構建的其實是乙個函式物件。
lambda:'
beginman'#
at 0x00b00a30>
如果沒有引數,則lambda冒號前面就沒有,如以上例子。
3、有引數
def add(x,y):return x+y二、lambda與defadd2 = lambda x,y:x+y
print add2(1,2) #
3def sum(x,y=10):return x+y
sum2 = lambda x,y=10:x+y
print sum2(1) #
11print sum2(1,100) #
101
上面的例子中,可知lambda函式只是建立簡單的函式物件,是乙個函式的單行版本,但是這種語句由於效能的原因,呼叫的時候繞過函式的棧分配。python lambda還有哪些和def不一樣呢?
1 、python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件賦值給乙個變數。
如:
>>> def foo():return2、python lambda它只是乙個表示式,而def則是乙個語句。lambda表示式執行起來像乙個函式,當被呼叫時建立乙個框架物件。'foo()
'>>>foo
三、lambda函式的用途
個人認為有以下:
1、對於單行函式,使用lambda可以省去定義函式的過程,讓**更加精簡。
2、在非多次呼叫的函式的情況下,lambda表示式即用既得,提高效能
注意:如果for..in..if能做的,最好不要選擇lambda
四、參考
C 委託,delegate,匿名函式和lambda
1委託就是可以把方法當作引數傳遞 2可以把委託看作乙個類來使用 3委託使用前需要例項化 using system using system.collections.generic using system.linq using system.text private void button1 cli...
Python 基本資料型別基礎實戰 Lambda
reference reference python程式設計基礎 第2版 lambda效率不及operator 冒號前是輸入引數,冒號後是返回值 add lambda x,y x y print add 2,5 g lambda x,y 2,z 6 x y z print g 10 wrong ex...
python3 關於日期的函式使用記錄
datetime類的timedalte 表示兩個時間的差值 datetime.timedelta days 0,seconds 0,microseconds 0,milliseconds 0,minutes 0,hours 0,weeks 0 均為可選引數。舉例 startdate 為某月1號 ne...