Python的程序结构[4] - 函数/Function[2] - 匿名函数
匿名函數(shù) / Anonymous Function
匿名函數(shù)是一種不需要綁定函數(shù)名的函數(shù) (i.e. functions that are not bound to a name)。匿名函數(shù)通過 lambda 表達(dá)式進(jìn)行構(gòu)建。常用于快速建立起一個(gè)(一次性的)函數(shù)。
Note: lambda 是 Python 的一個(gè)表達(dá)式/關(guān)鍵字,類似 return,并非一個(gè)函數(shù),而是能夠生成匿名函數(shù)。
關(guān)于匿名函數(shù)的使用,可以用下面的方式,直接使用,
1 # Use directly 2 f = lambda x: x+1 3 def foo(x): return x 4 print('f type is:', type(f), 'foo type is:', type(foo))lambda 所生成的函數(shù)可以直接使用,此時(shí)可能有違匿名函數(shù)的概念,當(dāng) lambda 函數(shù)通過 lambda 表達(dá)式定義后,需要調(diào)用時(shí)由于函數(shù)匿名因此需要將其賦予某個(gè)變量,通過變量名進(jìn)行調(diào)用,此時(shí)實(shí)際上已經(jīng)對(duì)匿名函數(shù)進(jìn)行了命名,因此與匿名的概念有所相違。
f type is: <class 'function'> foo type is: <class 'function'>但直接使用并不是匿名函數(shù)的最佳使用方式,lambda 生成的匿名函數(shù)最佳的使用場(chǎng)景應(yīng)該是當(dāng)一個(gè)函數(shù)需要一個(gè)簡(jiǎn)單臨時(shí)函數(shù)作為輸入?yún)?shù)的時(shí)候,使用 lambda 生成匿名函數(shù)可以免去為這個(gè)中間函數(shù)進(jìn)行定義命名的過程。例如使用 map 對(duì)可迭代對(duì)象的所有值進(jìn)行平方的時(shí)候,用匿名函數(shù)完成平方計(jì)算便十分方便。
# Use as a calculate func in other function print(list(map(lambda x: x*x, [1, 2, 3, 4])))同時(shí),匿名函數(shù)也可以用在當(dāng)需要 return 一個(gè)函數(shù)的場(chǎng)景下,免去對(duì)函數(shù)的命名。
1 # Use as a return func in other function 2 def foo(n): return lambda x: n+x 3 print(foo('n')('x'))?
轉(zhuǎn)載于:https://www.cnblogs.com/stacklike/p/8099195.html
總結(jié)
以上是生活随笔為你收集整理的Python的程序结构[4] - 函数/Function[2] - 匿名函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MES系统源码 MES系统功能介绍
- 下一篇: axure怎么转换成html文件,Axu