




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Python的functools模塊使用及說明目錄partialupdate_wrapperwrapsreducecmp_to_keylru_cachesingledispatch
partial
用于創(chuàng)建一個偏函數(shù),將默認參數(shù)包裝一個可調(diào)用對象,返回結(jié)果也是可調(diào)用對象。
偏函數(shù)可以固定住原函數(shù)的部分參數(shù),從而在調(diào)用時更簡單。
fromfunctoolsimportpartial
int2=partial(int,base=8)
print(int2('123'))
#83
update_wrapper
使用partial包裝的函數(shù)是沒有__name__和__doc__屬性的。
update_wrapper作用:將被包裝函數(shù)的__name__等屬性,拷貝到新的函數(shù)中去。
fromfunctoolsimportupdate_wrapper
defwrap2(func):
definner(*args):
returnfunc(*args)
returnupdate_wrapper(inner,func)
@wrap2
defdemo():
print('helloworld')
print(demo.__name__)
#demo
wraps
warps函數(shù)是為了在裝飾器拷貝被裝飾函數(shù)的__name__。
就是在update_wrapper上進行一個包裝
fromfunctoolsimportwraps
defwrap1(func):
@wraps(func)
#去掉就會返回inner
definner(*args):
print(func.__name__)
returnfunc(*args)
returninner
@wrap1
defdemo():
print('helloworld')
print(demo.__name__)
#demo
reduce
在Python2中等同于內(nèi)建函數(shù)reduce
函數(shù)的作用是將一個序列歸納為一個輸出
reduce(function,sequence,startValue)
fromfunctoolsimportreduce
l=range(1,50)
print(reduce(lambdax,y:x+y,l))
#1225
cmp_to_key
在list.sort和內(nèi)建函數(shù)sorted中都有一個key參數(shù)
x=['hello','worl','ni']
x.sort(key=len)
print(x)
#['ni','worl','hello']
Python3之前還提供了cmp參數(shù)來比較兩個元素
cmp_to_key函數(shù)就是用來將老式的比較函數(shù)轉(zhuǎn)化為key函數(shù)
lru_cache
允許我們將一個函數(shù)的返回值快速地緩存或取消緩存。
該裝飾器用于緩存函數(shù)的調(diào)用結(jié)果,對于需要多次調(diào)用的函數(shù),而且每次調(diào)用參數(shù)都相同,則可以用該裝飾器緩存調(diào)用結(jié)果,從而加快程序運行。
該裝飾器會將不同的調(diào)用結(jié)果緩存在內(nèi)存中,因此需要注意內(nèi)存占用問題。
fromfunctoolsimportlru_cache
@lru_cache(maxsize=30)
#maxsize參數(shù)告訴lru_cache緩存最近多少個返回值
deffib(n):
ifn2:
returnn
returnfib(n-1)+fib(n-2)
print([fib(n)forninrange(10)])
fib.cache_clear()
#清空緩存
singledispatch
單分發(fā)器,Python3.4新增,用于實現(xiàn)泛型函數(shù)。
根據(jù)單一參數(shù)的類型來判斷調(diào)用哪個函數(shù)。
fromfunctoolsimportsingledispatch
@singledispatch
deffun(text):
print('String:'+text)
@fun.register(int)
def_(text):
print(text)
@fun.register(list)
def_(text):
fork,vinenumerate(text):
print(k,v)
@fun.register(float)
@fun.register(tuple)
def_(text):
print('float,tuple')
fun('iamishubo')
fun(123)
fun(['a','b','c'])
fun(1.23)
print(fun.registry)
#所有的泛型函數(shù)
print(fun.registry[int])
#獲取int的泛型函數(shù)
#String:iamishubo
#123
#0a
#1b
#2c
#float,tuple
#{class'object':functionfunat0x106d10f28,class'int':function_at0x106f0b9d8,class'list':function_at0x106f0ba60,class'tuple':funct
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防員客觀練習題庫及答案
- 消防員個人工作總結(jié)
- 湘藝版小學(xué)音樂六年級上冊《我的祖國》教案
- 2025年年中國食品飲料項目建議書
- 2025年耐高溫濾料合作協(xié)議書
- 教育心理學(xué)與健康生活的結(jié)合點
- 如何運用心理學(xué)優(yōu)化教學(xué)策略
- 教育品牌危機公關(guān)快速響應(yīng)策略與實施
- 全球醫(yī)療教育的新模式與挑戰(zhàn)
- 教育技術(shù)與商業(yè)培訓(xùn)的融合探索
- 2025上海濟光職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試試題及答案
- 2024年江蘇三支一扶真題
- 《危險貨物港口作業(yè)重大事故隱患判定指南》解讀與培訓(xùn)
- 主、被動防護網(wǎng)施工方案-圖文
- 2025年初中語文文學(xué)常識:常考100題匯編
- 虛幻引擎介紹課件
- 君易和文化課件
- 2024年常德市安鄉(xiāng)縣教育局選調(diào)工作人員筆試真題
- 藥食同源106種25年4月更新
- 2025年江蘇省南通市中考英語適應(yīng)性試卷(A卷)
評論
0/150
提交評論