Python匿名函式快速入門

2021-10-02 15:36:06 字數 1357 閱讀 1945

匿名函式,顧明思義就是一種隱匿了名字的函式。python中使用lambda語法定義匿名函式,只需用表示式而無需申明。

lambda語法的定義如下:

lambda [arg1 [,arg2, ... argn]] : expression
除了沒有函式名,其語法與一般函式的定義相同。(名字即為常說的識別符號)

1.不用取名稱,因為給函式取名是比較頭疼的一件事,特別是函式比較多的時候;

2.可以直接在使用的地方定義,如果需要修改,直接找到修改即可,方便以後**的維護工作;

3.語法結構簡單,不用使用 def 函式名(引數名): 這種方式定義,直接使用lambda 引數:返回值 定義即可。

lambda這個名稱來自於lisp,而lisp則是從lambda calculus(一種符號邏輯形式)取這個名稱的。在python中,lambda作為乙個關鍵字,作為引入表示式的語法。想比較def函式,lambda是單一的表示式,而不是語句塊!你僅能夠在lambda中封裝有限的業務邏輯,這樣設計的目的:讓lambda純粹為了編寫簡單的函式而設計,def則專注於處理更大的業務。

普通函式:

#普通函式,帶倆引數的寫法  

def add(x,y):  

return x*y  

rs = add(10,20)  

print(rs)

匿名函式:

#帶有倆引數的匿名函式  

b = lambda x,y:x*y  

rs = b(10,20)  

print(rs)

詳解:這裡的b並不是匿名函式的名字,可模擬js中var fun1=function(){}與function fun2(){}中的不同,fun1本質上是拿到了定義函式的記憶體位址,通過位址訪問來呼叫函式,而fun2這裡本身便是function定義的識別符號。

通俗易懂:將函式比作一座房子,我們需要進入房子即呼叫函式,只需要有房子的鑰匙即可,並不需要自己是房子的主人,而這裡,fun1就是外來者,但是他擁有鑰匙,因而可以進入房子,而fun2是房子本身的主人,自然也擁有鑰匙,也可以進入房子。

而匿名函式就是乙個沒有主人的房子!只需要有鑰匙即可進入。

#計算存放100個數字的列表的每乙個數字的平方,返回乙個新的列表  

print(list(map(lambda x:x*x,[x for x in range(100)])))

執行結果:

[1, 4, 9, 16, 25, ......]

推薦閱讀:

[菜鳥致敬⑨] 排版建議

免主機搭建動態部落格wordpress

[菜鳥致敬⑤] 極簡搭建 hexo部落格

python 快速入門函式

def func print hello world return hello world a func print a hello world hello world def func args a,b,c print a,b,c func args 10,20,helloworld 10 20 ...

Python快速入門 函式

跟其他的語言一樣,函式可以做到 的復用與功能的封裝 def 函式名稱 這是個多行的注釋,可以解釋函式的功能 函式體 呼叫 函式名稱 def 是 define的封裝 源 i 1while i 9 j 1while j i print s s s i,j,i j end j j 1 i i 1print...

Python入門 匿名函式與偏函式

python早期沒有匿名函式,但後來出現了lambda表示式,python用lambda表示式充當匿名函式 用法 lambda 引數1,引數2,只能有一行 可寫函式說明 sum lambda arg1,arg2 arg1 arg2 lambda對結果預設return 呼叫sum函式 print 相加...