1. 程式人生 > >python函數式編程之匿名函數、裝飾器、偏函數

python函數式編程之匿名函數、裝飾器、偏函數

返回 cor com art 顯式 python 偏函數 裝飾器 限制

匿名函數

當我們在傳入函數時,有些時候,不需要顯式的定義函數,直接傳入匿名函數就行。如下面

lambda x: x*x

在python中,關鍵字lambda表示匿名函數,冒號前面的x表示函數參數
匿名函數有一個限制,就是只能有一個表達式,不用寫return,返回值就是該表達式的結果。
好處:防止函數名沖突,此外匿名函數也是一個函數對象,也可以把匿名函數賦值給一個變量,再利用變量來調用這個函數。

裝飾器(decorator)

decorator可以增強函數的功能,定義起來雖然有點復雜,但是使用起來非常方便
具體的參考廖雪峰的官方教程。https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318435599930270c0381a3b44db991cd6d858064ac0000

偏函數

def int2(x,base=2):
    return int(x,base)

python的functools模塊提供了很多有用的功能,其中一個就是偏函數。
functools.partial就是幫助我們創建一個偏函數的,不需要我們自己定義int2().

import functools
int2 = functools.partial(int,base = 2)
int2(‘1000000‘)
//64

python函數式編程之匿名函數、裝飾器、偏函數