欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Pythonfunctools模塊如何使用-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

十多年的棗莊網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整棗莊建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“棗莊網(wǎng)站設(shè)計(jì)”,“棗莊網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

本篇文章給大家分享的是有關(guān)Python functools模塊如何使用,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

functools 模塊中主要包含了一些函數(shù)裝飾器和便捷的功能函數(shù)。在 Python 的交互式解釋器中先導(dǎo)入 functools 模塊,然后輸入 [e for e in dir(functools) if not e.startswith('_')] 命令,即可看到該模塊所包含的全部屬性和函數(shù):

>>> [e for e in dir(functools) if not e.startswith('_')]
['MappingProxyType', 'RLock', 'WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', 'WeakKeyDictionary', 'cmp_to_key', 
'get_cache_token', 'lru_cache', 'namedtuple', 'partial', 'partialmethod', 'recursive_repr', 'reduce', 'singledispatch',
 'total_ordering', 'update_wrapper', 'wraps']

在functools 模塊中常用的函數(shù)裝飾器和功能函數(shù)如下:

functools.cmp_to_key(func):將老式的比較函數(shù)(func)轉(zhuǎn)換為關(guān)鍵字函數(shù)(key function)。在 Python 3 中比較大小、排序都是基于關(guān)鍵字函數(shù)的,Python 3 不支持老式的比較函數(shù)。

@functools.lru_cache(maxsize=128, typed=False):該函數(shù)裝飾器使用 LRU(最近最少使用)緩存算法來緩存相對(duì)耗時(shí)的函數(shù)結(jié)果,避免傳入相同的參數(shù)重復(fù)計(jì)算。同時(shí),緩存并不會(huì)無限增長,不用的緩存會(huì)被釋放。其中 maxsize 參數(shù)用于設(shè)置緩存占用的大字節(jié)數(shù),typed 參數(shù)用于設(shè)置將不同類型的緩存結(jié)果分開存放。

@functools.total_ordering:這個(gè)類裝飾器(作用類似于函數(shù)裝飾器,只是它用于修飾類)用于為類自動(dòng)生成比較方法。通常來說,開發(fā)者只要提供 __lt__()、__le__()、__gt__()、__ge__() 其中之一(最好能提供 __eq__() 方法),@functools.total_ordering裝飾器就會(huì)為該類生成剩下的比較方法。

functools.partial(func, *args, **keywords):該函數(shù)用于為 func 函數(shù)的部分參數(shù)指定參數(shù)值,從而得到一個(gè)轉(zhuǎn)換后的函數(shù),程序以后調(diào)用轉(zhuǎn)換后的函數(shù)時(shí),就可以少傳入那些己指定值的參數(shù)。

functools.partialmethod(func, *args, **keywords):該函數(shù)與上一個(gè)函數(shù)的含義完全相同,只不過該函數(shù)用于為類中的方法設(shè)置參數(shù)值。

functools.reduce(function, iterable[, initializer]):將初始值(默認(rèn)為 0,可由 initializer 參數(shù)指定)、迭代器的當(dāng)前元素傳入 function 函數(shù),將計(jì)算出來的函數(shù)結(jié)果作為下一次計(jì)算的初始值、迭代器的下一個(gè)元素再次調(diào)用 function 函數(shù)……依此類推,直到迭代器的最后一個(gè)元素。

@functools.singledispatch:該函數(shù)裝飾器用于實(shí)現(xiàn)函數(shù)對(duì)多個(gè)類型進(jìn)行重載。比如同樣的函數(shù)名稱,為不同的參數(shù)類型提供不同的功能實(shí)現(xiàn)。該函數(shù)的本質(zhì)就是根據(jù)參數(shù)類型的變換,將函數(shù)轉(zhuǎn)向調(diào)用不同的函數(shù)。

functools.update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES):對(duì) wrapper 函數(shù)進(jìn)行包裝,使之看上去就像 wrapped(被包裝)函數(shù)。

@functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES):該函數(shù)裝飾器用于修飾包裝函數(shù),使包裝函數(shù)看上去就像 wrapped 函數(shù)。

通過介紹不難發(fā)現(xiàn),functools.update_wrapper 和 @functools.wraps 的功能是一樣的,只不過前者是函數(shù),因此需要把包裝函數(shù)作為第一個(gè)參數(shù)傳入;而后者是函數(shù)裝飾器,因此使用該函數(shù)裝飾器修飾包裝函數(shù)即可,無須將包裝函數(shù)作為第一個(gè)參數(shù)傳入。

下面程序示范了 functiontools 棋塊中部分函數(shù)或函數(shù)裝飾器的用法:

from functools import *
# 以初始值(默認(rèn)為0)為x,以當(dāng)前序列元素為y,x+y的和作為下一次的初始值
print(reduce(lambda x,y: x + y, range(5))) # 10
print(reduce(lambda x,y: x + y, range(6))) # 15
# 設(shè)初始值為10
print(reduce(lambda x,y: x + y, range(6), 10)) # 25
print('----------------')
class User:
    def __init__(self, name):
        self.name = name
    def __repr__(self):
        return 'User[name=%s' % self.name
# 定義一個(gè)老式的大小比較函數(shù),User的name越長,該User越大
def old_cmp(u1 , u2):
    return len(u1.name) - len(u2.name)
my_data = [User('Kotlin'), User('Swift'), User('Go'), User('Java')]
# 對(duì)my_data排序,需要關(guān)鍵字參數(shù)(調(diào)用cmp_to_key將old_cmp轉(zhuǎn)換為關(guān)鍵字參數(shù)
my_data.sort(key=cmp_to_key(old_cmp))
print(my_data)
print('----------------')
@lru_cache(maxsize=32)
def factorial(n):
    print('~~計(jì)算%d的階乘~~' % n)
    if n == 1:
        return 1
    else:
        return n * factorial(n - 1)
# 只有這行會(huì)計(jì)算,然后會(huì)緩存5、4、3、2、1的解乘
print(factorial(5))
print(factorial(3))
print(factorial(5))
print('----------------')
# int函數(shù)默認(rèn)將10進(jìn)制的字符串轉(zhuǎn)換為整數(shù)
print(int('12345'))
# 為int函數(shù)的base參數(shù)指定參數(shù)值
basetwo = partial(int, base=2)
basetwo.__doc__ = '將二進(jìn)制的字符串轉(zhuǎn)換成整數(shù)'
# 相當(dāng)于執(zhí)行base為2的int()函數(shù)
print(basetwo('10010'))
print(int('10010', 2))

以上就是Python functools模塊如何使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

標(biāo)題名稱:Pythonfunctools模塊如何使用-創(chuàng)新互聯(lián)
文章位置:http://aaarwkj.com/article40/dspiho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、做網(wǎng)站、網(wǎng)站營銷、網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站收錄虛擬主機(jī)

廣告

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

外貿(mào)網(wǎng)站建設(shè)
欧美日韩午夜久久免费| 五月色婷婷六月色丁香| 伊人不卡中文字幕在线一区| 国产激情久久久久久久久久久| 日本经典三级视频在线观看| 日韩一区二区三级电影| 久久婷婷av一区二区三区| 国产69精品久久久久久人| 最新91精品国产自产在线| 中文字幕日韩激情欧美一区| av中文字幕乱码在线看| 理论三级麻豆国产在线| 亚洲欧洲精品专线九九| 日韩天堂视频在线播放| 亚洲精品综合在线二区| 国产免费看黄色的网站| 国产999精品免费国产| 亚洲欧美日韩精品在线观看| 亚洲一区二区三区有码| 成人黄网站色大片免费观看| 欧美日韩亚洲精品久久| 亚洲经典日韩欧美一区| 夫妻性生活黄色录像视频| 永久免费看黄在线观看| 日韩av裸体在线播放| 91九色午夜在线观看| 日韩精品中文字幕欧美激情| 亚洲av日韩av一区| 国产性做爰片免费视频| 91麻豆精品国产91久| 久久精品国产亚洲av制服| 日产精品一级二级三级爱| 热久久精品只有这里有| 东京热加勒比在线播放| 欧美精品青青久久久久久| 伊人蕉影院久亚洲高清| 91高清国产最新地址| 欧美亚洲国产另类第一页| 国产成十人十综合十亚洲| 一本久久精品午夜福利| 色一区欧美一区亚洲一区|