Python3標(biāo)準(zhǔn)庫之functools管理函數(shù)的工具詳解-創(chuàng)新互聯(lián)

1. functools管理函數(shù)的工具

functools模塊提供了一些工具來調(diào)整或擴展函數(shù)和其他callable對象,從而不必完全重寫。

創(chuàng)新互聯(lián)建站長期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蘄春企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,蘄春網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。1.1 修飾符

functools模塊提供的主要工具就是partial類,可以用來“包裝”一個有默認(rèn)參數(shù)的callable對象。得到的對象本身就是callable,可以把它看作是原來的函數(shù)。它與原函數(shù)的參數(shù)完全相同,調(diào)用時還可以提供額外的位置或命名函數(shù)??梢允褂胮artial而不是lambda為函數(shù)提供默認(rèn)參數(shù),有些參數(shù)可以不指定。

1.1.1 部分對象

第一個例子顯示了函數(shù)myfunc()的兩個簡單partial對象。show_details()的輸出中包含這個部分對象(partial object)的func、args和keywords屬性。

import functools
def myfunc(a, b=2):
 "Docstring for myfunc()."
 print(' called myfunc with:', (a, b))
def show_details(name, f, is_partial=False):
 "Show details of a callable object."
 print('{}:'.format(name))
 print(' object:', f)
 if not is_partial:
  print(' __name__:', f.__name__)
 if is_partial:
  print(' func:', f.func)
  print(' args:', f.args)
  print(' keywords:', f.keywords)
 return
show_details('myfunc', myfunc)
myfunc('a', 3)
print()
# Set a different default value for 'b', but require
# the caller to provide 'a'.
p1 = functools.partial(myfunc, b=4)
show_details('partial with named default', p1, True)
p1('passing a')
p1('override b', b=5)
print()
# Set default values for both 'a' and 'b'.
p2 = functools.partial(myfunc, 'default a', b=99)
show_details('partial with defaults', p2, True)
p2()
p2(b='override b')
print()
print('Insufficient arguments:')
p1()

新聞標(biāo)題:Python3標(biāo)準(zhǔn)庫之functools管理函數(shù)的工具詳解-創(chuàng)新互聯(lián)
路徑分享:http://www.bm7419.com/article40/dcdoeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、云服務(wù)器、標(biāo)簽優(yōu)化、微信小程序品牌網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管