python中partial庫的使用方法解析
源碼解釋:
class partial:
"""New function with partial application of the given arguments
and keywords.
"""分部函數(shù)基于另一個函數(shù)來創(chuàng)建函數(shù)。它用于將值綁定到函數(shù)的參數(shù)(或關(guān)鍵字參數(shù)),并生成一個之前沒有定義參數(shù)的可調(diào)用函數(shù)。
functools.partial返回的是一個可調(diào)用的partial對象,使用方法是partial(func,args,*kw),其中func是必須要傳入的,而且至少需要一個args或是kw的參數(shù)。
示例代碼1:
from functools import partial
# 定義一個加法函數(shù)
def add(a, b, c):
return a + b + c
# 定義分部函數(shù),其中第一個參數(shù)已經(jīng)固定
ret = partial(add, 6)
# 初始化前兩個參數(shù)并打印
print(ret(2, 4))運行結(jié)果:

示例代碼2:
from functools import partial
# 定義一個求冪函數(shù)
def sq(a, b):
return b ** a
# 求平方 分部函數(shù) 第一個參數(shù)已經(jīng)確定
pingfang = partial(sq, 2)
# 求立方 分部函數(shù) 第一個參數(shù)已經(jīng)確定
lifang = partial(sq, 3)
# 求5的平方
print(pingfang(5))
# 求5的立方
print(lifang(5))運行結(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ù)封裝到一個指定變量名中,下次執(zhí)行直接調(diào)用加()
getBaidu = partial(get_baidu, 'get', "https://www.baidu.com")
print(type(getBaidu)) # <class 'functools.partial'>
ret = getBaidu()
print(ret)運行結(jié)果:

示例代碼4:
from functools import partial
# 定義一個加減乘除的類
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)運行結(jié)果:

到此這篇關(guān)于python中partial庫的使用方法解析的文章就介紹到這了,更多相關(guān)python partial庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python開發(fā)游戲運行腳本成功調(diào)用大漠插件
閑來無事,想通過python來實現(xiàn)一些簡單的游戲輔助腳本,而游戲輔助腳本的主要原理就是通過程序來查找游戲程序窗口,模擬實現(xiàn)鼠標(biāo)點擊和鍵盤按鍵等事件來實現(xiàn)游戲輔助的,對Python開發(fā)游戲運行腳本相關(guān)知識感興趣的朋友跟隨小編一起看看吧2021-11-11
python通過socket搭建極簡web服務(wù)器的實現(xiàn)代碼
python的web框架眾多,常見的如django、flask、tornado等,其底層是什么還是有些許的疑問,所以查找相關(guān)資料,實現(xiàn)瀏覽器訪問,并返回相關(guān)信息,本文將給大家介紹python通過socket搭建極簡web服務(wù)器,需要的朋友可以參考下2023-10-10
Python實現(xiàn)獲取亂序列表排序后的新下標(biāo)的示例
本文主要介紹了Python實現(xiàn)獲取亂序列表排序后的新下標(biāo)的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
使用python將excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫過程詳解
這篇文章主要介紹了使用python將excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08
pycharm通過ssh連接遠(yuǎn)程服務(wù)器教程
今天小編就為大家分享一篇pycharm通過ssh連接遠(yuǎn)程服務(wù)器教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

