functools模組中partial的使用

2022-05-29 03:54:09 字數 2274 閱讀 4796

functools.partial

func

,* args

,**關鍵字

)返回乙個新的部分物件

,當被呼叫時,其行為類似於

使用位置引數

args

和關鍵字引數

關鍵字呼叫的

func

。args

。如果提供了其他關鍵字引數,則它們會擴充套件和覆蓋

關鍵字。

簡單說就是把乙個函式,和該函式所需傳的引數封裝到乙個class 'functools.partial'的類中,簡化以後的呼叫方式

#

官方例項

from functools import

partial

#將乙個二進位制的字串傳承int數字型別

#將函式和引數封裝到乙個指定變數名中,下次執行直接呼叫加()

定義乙個加減乘除的類

class

calculate(object):

md=["

add","

minus

","multiplication

","division"]

def__init__(self,method,num1=0, num2=0):

self.num1 =num1

self.num2 =num2

if method in

self.md:

func=getattr(calculate,method)

self.result=func(self)

defadd(self):

return self.num1 +self.num2

defminus(self):

return self.num1 -self.num2

defmultiplication(self):

return self.num1 *self.num2

defdivision(self):

return self.num1 /self.num2

add=partial(calculate,"

add"

)minus=partial(calculate,"

minus")

multiplication=partial(calculate,"

multiplication")

division=partial(calculate,"

division

")

#

呼叫剛剛寫好的類的py檔案

from functool_learn import

functool_employ

res=functool_employ.add(3, 5)

print

(res.result)

res=functool_employ.minus(3, 5)

print

(res.result)

res=functool_employ.multiplication(3, 5)

print

(res.result)

res=functool_employ.division(3, 5)

print(res.result)

functools模組中的函式

補充 partial方法 python 中提供一種用於對函式固定屬性的函式 與數學上的偏函式不一樣 通常會返回10進製 int 12345 print 12345 使用引數 返回 8進製 int 11111 8 print 4681 每次都得新增引數比較麻煩,functools提供了partial的...

Python中functools模組的常用函式解析

1.partial 首先是partial函式,它可以重新繫結函式的可選引數,生成乙個callable的partial物件 int 10 實際上等同於int 10 base 10 和int 10 10 10 int 10 2 實際上是int 10 base 2 的縮寫 2 from functools...

Python標準模組 functools

functools,用於高階函式 指那些作用於函式或者返回其它函式的函式,通常只要是可以被當做函式呼叫的物件就是這個模組的目標。在python 2.7 中具備如下方法,cmp to key,將乙個比較函式轉換關鍵字函式 partial,針對函式起作用,並且是部分的 reduce,與python內建的...