python中partial庫(kù)的使用方法解析
源碼解釋:
class partial: """New function with partial application of the given arguments and keywords. """
分部函數(shù)基于另一個(gè)函數(shù)來(lái)創(chuàng)建函數(shù)。它用于將值綁定到函數(shù)的參數(shù)(或關(guān)鍵字參數(shù)),并生成一個(gè)之前沒有定義參數(shù)的可調(diào)用函數(shù)。
functools.partial返回的是一個(gè)可調(diào)用的partial對(duì)象,使用方法是partial(func,args,*kw),其中func是必須要傳入的,而且至少需要一個(gè)args或是kw的參數(shù)。
示例代碼1:
from functools import partial # 定義一個(gè)加法函數(shù) def add(a, b, c): return a + b + c # 定義分部函數(shù),其中第一個(gè)參數(shù)已經(jīng)固定 ret = partial(add, 6) # 初始化前兩個(gè)參數(shù)并打印 print(ret(2, 4))
運(yùn)行結(jié)果:
示例代碼2:
from functools import partial # 定義一個(gè)求冪函數(shù) def sq(a, b): return b ** a # 求平方 分部函數(shù) 第一個(gè)參數(shù)已經(jīng)確定 pingfang = partial(sq, 2) # 求立方 分部函數(shù) 第一個(gè)參數(shù)已經(jīng)確定 lifang = partial(sq, 3) # 求5的平方 print(pingfang(5)) # 求5的立方 print(lifang(5))
運(yùn)行結(jié)果:
示例代碼3:
from functools import partial import requests def get_baidu(method, url): response = requests.request(method=method, url=url) return response.content res = get_baidu("get", "https://www.baidu.com") print(res) # 將函數(shù)和參數(shù)封裝到一個(gè)指定變量名中,下次執(zhí)行直接調(diào)用加() getBaidu = partial(get_baidu, 'get', "https://www.baidu.com") print(type(getBaidu)) # <class 'functools.partial'> ret = getBaidu() print(ret)
運(yùn)行結(jié)果:
示例代碼4:
from functools import partial # 定義一個(gè)加減乘除的類 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) print(func) self.result = func(self) def add(self): return self.num1 + self.num2 def minus(self): return self.num1 - self.num2 def multiplication(self): return self.num1 * self.num2 def division(self): return self.num1 / self.num2 add = partial(Calculate, "add") minus = partial(Calculate, "minus") multiplication = partial(Calculate, "multiplication") division = partial(Calculate, "division") print(add) print(minus) print(multiplication) print(division) print("*" * 100) print(add(3, 5)) print(add(3, 5).result) print(minus(3, 5).result) print(multiplication(3, 5).result) print(division(3, 5).result)
運(yùn)行結(jié)果:
到此這篇關(guān)于python中partial庫(kù)的使用方法解析的文章就介紹到這了,更多相關(guān)python partial庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Qt自定義Plot實(shí)現(xiàn)曲線繪制的詳細(xì)過程
這篇文章主要介紹了Qt自定義Plot實(shí)現(xiàn)曲線繪制,包含arm觸摸屏多點(diǎn)觸控縮放(只支持兩點(diǎn)),實(shí)時(shí)曲線繪制,數(shù)據(jù)點(diǎn)根據(jù)繪制寬度優(yōu)化,跟蹤點(diǎn)數(shù)據(jù)獲取,雙坐標(biāo)等功能,需要的朋友可以參考下2021-11-11在Python的列表中利用remove()方法刪除元素的教程
這篇文章主要介紹了在Python的列表中利用remove()方法刪除元素的教程,是Python入門中的基礎(chǔ)知識(shí),注意其和pop()方法的區(qū)別,需要的朋友可以參考下2015-05-05web.py 十分鐘創(chuàng)建簡(jiǎn)易博客實(shí)現(xiàn)代碼
web.py是一款輕量級(jí)的Python web開發(fā)框架,簡(jiǎn)單、高效、學(xué)習(xí)成本低,特別適合作為python web開發(fā)的入門框架2016-04-04Python實(shí)現(xiàn)屏幕代碼雨效果的示例代碼
這篇文章主要介紹了如何利用Python中的Pygame模塊實(shí)現(xiàn)代碼雨效果,文中通過示例代碼介紹的非常詳細(xì),感興趣的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-03-03