亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

python的functools進階模塊

2019-11-14 09:34:20
字體:
來源:轉載
供稿:網友
Python-進階-functools模塊小結functools.partialfunctool.update_wrapperfunctool.wrapsfunctools.reducefunctools.cmp_to_keyfunctools.total_ordering

文檔 地址

functools.partial

作用:

functools.partial 通過包裝手法,允許我們 "重新定義" 函數簽名

用一些默認參數包裝一個可調用對象,返回結果是可調用對象,并且可以像原始對象一樣對待

凍結部分函數位置函數或關鍵字參數,簡化函數,更少更靈活的函數參數調用

#args/keyWords 調用partial時參數def partial(func, *args, **keywords):    def newfunc(*fargs, **fkeywords):        newkeywords = keywords.copy()        newkeywords.update(fkeywords)        return func(*(args + fargs), **newkeywords) #合并,調用原始函數,此時用了partial的參數    newfunc.func = func    newfunc.args = args    newfunc.keywords = keywords    return newfunc

聲明:

urlunquote = functools.partial(urlunquote, encoding='latin1')

當調用 urlunquote(args, *kargs)

相當于 urlunquote(args, *kargs, encoding='latin1')

E.g:

import functoolsdef add(a, b):    return a + badd(4, 2)6plus3 = functools.partial(add, 3)plus5 = functools.partial(add, 5)plus3(4)7plus3(7)10plus5(10)15

應用:

典型的,函數在執行時,要帶上所有必要的參數進行調用。

然后,有時參數可以在函數被調用之前提前獲知。

這種情況下,一個函數有一個或多個參數預先就能用上,以便函數能用更少的參數進行調用。

functool.update_wrapper

默認partial對象沒有__name__和__doc__, 這種情況下,對于裝飾器函數非常難以debug.使用update_wrapper(),從原始對象拷貝或加入現有partial對象

它可以把被封裝函數的__name__、module、__doc__和 __dict__都復制到封裝函數去(模塊級別常量WRAPPER_ASSIGNMENTS, WRAPPER_UPDATES)

>>> functools.WRAPPER_ASSIGNMENTS('__module__', '__name__', '__doc__')>>> functools.WRAPPER_UPDATES('__dict__',)

這個函數主要用在裝飾器函數中,裝飾器返回函數反射得到的是包裝函數的函數定義而不是原始函數定義

#!/usr/bin/env python# encoding: utf-8def wrap(func):    def call_it(*args, **kwargs):        """wrap func: call_it"""        得到結果:

before callhello worldcall_itwrap func: call_itbefore callhello world2hello2test hello

functool.wraps

調用函數裝飾器partial(update_wrapper, wrapped=wrapped, assigned=assigned, updated=updated)的簡寫

from functools import wrapsdef wrap3(func):    @wraps(func)    def call_it(*args, **kwargs):        """wrap func: call_it2"""        print 'before call'        return func(*args, **kwargs)    return call_it@wrap3def hello3():    """test hello 3"""    print 'hello world3'

結果

before callhello world3hello3test hello 3

functools.reduce

functools.reduce(function, iterable[, initializer])

等同于內置函數reduce()

用這個的原因是使代碼更兼容(python3)

functools.cmp_to_key

functools.cmp_to_key(func)

將老式鼻尖函數轉換成key函數,用在接受key函數的方法中(such as sorted(), min(), max(), heapq.nlargest(), heapq.nsmallest(), itertools.groupby())

一個比較函數,接收兩個參數,小于,返回負數,等于,返回0,大于返回整數

key函數,接收一個參數,返回一個表明該參數在期望序列中的位置

例如:

sorted(iterable, key=cmp_to_key(locale.strcoll))  # locale-aware sort order

functools.total_ordering

functools.total_ordering(cls)

這個裝飾器是在python2.7的時候加上的,它是針對某個類如果定義了__lt__、le、gt、__ge__這些方法中的至少一個,使用該裝飾器,則會自動的把其他幾個比較函數也實現在該類中

@total_orderingclass Student:    def __eq__(self, other):        return ((self.lastname.lower(), self.firstname.lower()) ==                (other.lastname.lower(), other.firstname.lower()))    def __lt__(self, other):        return ((self.lastname.lower(), self.firstname.lower()) <                (other.lastname.lower(), other.firstname.lower()))print dir(Student)

得到

['__doc__', '__eq__', '__ge__', '__gt__', '__le__', '__lt__', '__module__']
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情成人在线视频| 欧美亚洲一级片| 成人亚洲激情网| 国产精品入口免费视频一| 中文字幕日韩欧美在线| 日韩不卡中文字幕| 俺去了亚洲欧美日韩| 国模精品一区二区三区色天香| 欧美午夜精品在线| 91久久久久久国产精品| 人人澡人人澡人人看欧美| 欧洲一区二区视频| 亚洲free嫩bbb| 日韩欧美在线观看| 91成人在线观看国产| 中文字幕久热精品在线视频| 精品欧美国产一区二区三区| 欧美精品免费在线| 亚洲国产天堂久久国产91| 色综合91久久精品中文字幕| 日韩av一区二区在线| 国产精品成人免费电影| 国产一区二区三区四区福利| 中文字幕欧美日韩va免费视频| 欧美日韩一二三四五区| 亚洲色图综合网| 北条麻妃99精品青青久久| 国产精品电影一区| 成人激情在线观看| 欧美夫妻性视频| 久热爱精品视频线路一| 欧美性猛交xxxx免费看久久久| 日韩小视频在线观看| 777午夜精品福利在线观看| 亚洲欧美另类国产| 中文字幕欧美精品日韩中文字幕| 国语自产偷拍精品视频偷| 亚洲第一精品夜夜躁人人爽| 久久久久久久久久av| 国产精品视频久久久久| 国产精品第七十二页| 国内精品免费午夜毛片| 欧美日韩成人在线观看| 国产精品美女av| 亚洲2020天天堂在线观看| 亚洲欧美在线免费观看| 国产精自产拍久久久久久蜜| 国a精品视频大全| 91av国产在线| 91系列在线观看| 亚洲国产成人爱av在线播放| 欧美成人精品一区二区| 川上优av一区二区线观看| 亚洲精品日韩久久久| 精品久久久国产精品999| 九九久久久久99精品| 久久久久久久国产| 国产精品扒开腿做爽爽爽的视频| 97精品视频在线观看| 亚洲欧洲日产国产网站| 国产精品永久免费观看| 亚洲精品自拍偷拍| 亚洲毛茸茸少妇高潮呻吟| 亚洲成色777777在线观看影院| 亚洲精品在线不卡| 国产欧美欧洲在线观看| 国产成人综合av| 亚洲国产精彩中文乱码av| 26uuu日韩精品一区二区| 日本午夜精品理论片a级appf发布| 色综合久久88色综合天天看泰| 久久久国产在线视频| 精品视频一区在线视频| 亚洲激情视频在线播放| 青青a在线精品免费观看| 亚洲美女精品成人在线视频| 亚洲自拍欧美色图| 国产精品高潮呻吟久久av黑人| 国产精品伦子伦免费视频| 亚洲精品国产精品国自产在线| 欧美黑人性视频| 亚洲日韩欧美视频| 亚洲最大福利视频| 亚洲女人被黑人巨大进入al| 精品中文字幕乱| 狠狠色狠狠色综合日日五| 亚洲性猛交xxxxwww| 精品女厕一区二区三区| 亚洲精品免费av| 欧美激情18p| **欧美日韩vr在线| 亚洲第一国产精品| 成人网中文字幕| 777777777亚洲妇女| 国产成人欧美在线观看| 亚洲人精品午夜在线观看| 日韩成人av一区| 一区国产精品视频| 日韩高清av一区二区三区| 国产精品久久久久久一区二区| 亚洲网站在线播放| 国产精品福利在线观看网址| 国产精品成人品| 精品欧美aⅴ在线网站| 久久全国免费视频| 欧美大片网站在线观看| 精品久久久久久国产91| 这里只有精品在线观看| 国产精品久久久久久久久借妻| 丝袜亚洲另类欧美重口| 国产精品大陆在线观看| 欧美日韩国产999| 在线不卡国产精品| 久久91亚洲精品中文字幕| 一级做a爰片久久毛片美女图片| 51久久精品夜色国产麻豆| 精品在线观看国产| 色中色综合影院手机版在线观看| 久久久久99精品久久久久| 欧美裸体xxxx极品少妇软件| 色综合久久久久久中文网| 九九热这里只有精品免费看| 国产精品video| 中文日韩在线观看| 精品国产乱码久久久久久婷婷| 亚洲精品自拍视频| www欧美日韩| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲欧洲日产国码av系列天堂| 久久人人爽人人爽人人片av高请| 亚洲一区二区久久久久久| 久久影视电视剧凤归四时歌| 久久精品视频99| 久久精品视频中文字幕| 91美女福利视频高清| 亚洲第一偷拍网| 久久6精品影院| yw.139尤物在线精品视频| 国内精品美女av在线播放| 国产成人精品久久二区二区91| 中国人与牲禽动交精品| 国产又爽又黄的激情精品视频| 98精品国产高清在线xxxx天堂| 国产亚洲欧美一区| 久久久999国产精品| 亚洲激情第一页| 欧美性高潮床叫视频| www.久久久久| 国产精品在线看| 一区二区三区精品99久久| 中文字幕成人精品久久不卡| 欧美制服第一页| 欧美亚洲日本黄色| 人人澡人人澡人人看欧美| 久久久午夜视频| 欧美日韩福利视频| 日韩精品视频中文在线观看| 欧美疯狂做受xxxx高潮| 欧美日韩在线免费| 久久久精品2019中文字幕神马| 久久国产精品首页| 亚洲精品国产suv| 国产精品自拍视频| 欧美精品在线免费观看|