python匿名函數(shù)的使用
匿名函數(shù)(英語:anonymous function)是指一類無需定義標識符(函數(shù)名)的函數(shù)。通俗來說呢,就是它可以讓我們的函數(shù),可以不需要函數(shù)名。
正常情況下,我們定義一個函數(shù),使用的是 def
關(guān)鍵字,而當你學(xué)會使用匿名函數(shù)后,替代 def
的是 lambda
。
這邊使用def
和 lambda
分別舉個例子,你很快就能理解。
def mySum(x, y):
return x+y
mySum(2, 3)
# 5
(lambda x, y: x+y)(2, 4)
# 6
從上面的示例,我們可以看到匿名函數(shù)直接運行,省下了很多行的代碼,有沒有?
接下來,我們的仔細看一下它的用法
帶 if/else
>>>( lambda x, y: x if x < y else y )( 1, 2 )
1
嵌套函數(shù)
>>>( lambda x: ( lambda y: ( lambda z: x + y + z )( 1 ) )( 2 ) )( 3 )
6
遞歸函數(shù)
>>> func = lambda n:1 if n == 0 else n * func(n-1)
>>> func(5)
120
或者
>>> f = lambda func, n: 1 if n == 0 else n * func( func, n - 1 )
>>> f(f,4)
24
從以上示例來看,lambda 表達式和常規(guī)的函數(shù)相比,寫法比較怪異,可讀性相對較差。除了可以直接運行之外,好像并沒有其他較為突出的功能,為什么在今天我們要介紹它呢?
首先我們要知道 lambda 是一個表達式,而不是一個語句。正因為這個特點,我們可以在一些特殊的場景中去使用它。
審核編輯:符乾江
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4344瀏覽量
62839 -
python
+關(guān)注
關(guān)注
56文章
4804瀏覽量
84910
發(fā)布評論請先 登錄
相關(guān)推薦
評論