最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法示例

 更新時(shí)間:2019年11月06日 11:30:27   作者:weixin_42359464  
這篇文章主要介紹了python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法,結(jié)合實(shí)例形式分析了Python函數(shù)裝飾器中函數(shù)帶多個(gè)參數(shù)以及裝飾器帶有多個(gè)參數(shù)的具體原理與實(shí)現(xiàn)方法,需要的朋友可以參考下

本文實(shí)例講述了python函數(shù)裝飾器之帶參數(shù)的函數(shù)和帶參數(shù)的裝飾器用法。分享給大家供大家參考,具體如下:

1. 函數(shù)帶多個(gè)參數(shù)

# 普通的裝飾器, 打印函數(shù)的運(yùn)行時(shí)間
def decrator(func):
  def wrap(*args, **kwargs):
    start_time = time.time()
    res = func(*args, **kwargs)
    end_time = time.time()
    print('運(yùn)行時(shí)間為', end_time-start_time)
    return res
  return wrap

2. 裝飾器帶有多個(gè)參數(shù)

當(dāng)裝飾器帶有多個(gè)參數(shù)的時(shí)候, 裝飾器函數(shù)就需要多加一層嵌套:

比如:

def decrator(*dargs, **dkargs):
  def wrapper(func):
    def _wrapper(*args, **kargs):
      print ("裝飾器參數(shù):", dargs, dkargs)
      print ("函數(shù)參數(shù):", args, kargs)
      return func(*args, **kargs)
    return _wrapper
  return wrapper

為什么被裝飾函數(shù)體可以傳入內(nèi)層呢?

裝飾器函數(shù)有多個(gè)參數(shù), 需要以@decrator(1, a=2)的方式使用, 這時(shí)候decrator是已經(jīng)執(zhí)行的(因?yàn)榧恿死ㄌ?hào)), 可以粗略的理解為加載被裝飾函數(shù)的上的是wrapper, 所以這和普通的裝飾器并無(wú)差別.

又如flask源碼中的:

  def route(self, rule, **options):
    """Like :meth:`Flask.route` but for a blueprint. The endpoint for the
    :func:`url_for` function is prefixed with the name of the blueprint.
    """
    def decorator(f):
      endpoint = options.pop("endpoint", f.__name__)
      self.add_url_rule(rule, endpoint, f, **options)
      return f
    return decorator

flask的藍(lán)圖route源碼中的裝飾器, 最內(nèi)層直接返回return f 并沒(méi)有多加一層處理的函數(shù), 在無(wú)需對(duì)被裝飾函數(shù)進(jìn)行過(guò)多處理的時(shí)候這是較為方便的做法. route源碼中只是對(duì)裝飾器參數(shù)進(jìn)行了處理.

關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 使用python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲

    使用python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了使用python實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 基于python框架Scrapy爬取自己的博客內(nèi)容過(guò)程詳解

    基于python框架Scrapy爬取自己的博客內(nèi)容過(guò)程詳解

    這篇文章主要介紹了基于python框架Scrapy爬取自己的博客內(nèi)容過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python實(shí)現(xiàn)多條件篩選Excel數(shù)據(jù)并批量繪制直方圖

    Python實(shí)現(xiàn)多條件篩選Excel數(shù)據(jù)并批量繪制直方圖

    這篇文章主要為大家介紹了如何Python對(duì)Excel數(shù)據(jù)進(jìn)行多條件篩選和去除并批量繪制直方圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下
    2023-09-09
  • django文檔學(xué)習(xí)之a(chǎn)pplications使用詳解

    django文檔學(xué)習(xí)之a(chǎn)pplications使用詳解

    這篇文章主要介紹了Python文檔學(xué)習(xí)之a(chǎn)pplications使用詳解,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • python  fire庫(kù)的使用實(shí)例教程

    python  fire庫(kù)的使用實(shí)例教程

    fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具,不需要做任何額外的工作,只需要從主模塊中調(diào)用fire.Fire(),它會(huì)自動(dòng)將你的代碼轉(zhuǎn)化為CLI,F(xiàn)ire()的參數(shù)可以說(shuō)任何的python對(duì)象,對(duì)python fire庫(kù)使用感興趣的朋友一起看看吧
    2022-12-12
  • Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事項(xiàng)

    Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事項(xiàng)

    這篇文章主要介紹了Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事項(xiàng),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • pandas 數(shù)據(jù)歸一化以及行刪除例程的方法

    pandas 數(shù)據(jù)歸一化以及行刪除例程的方法

    今天小編就為大家分享一篇pandas 數(shù)據(jù)歸一化以及行刪除例程的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 一篇文章帶你了解Python中的類

    一篇文章帶你了解Python中的類

    這篇文章主要給大家介紹了關(guān)于Python中類的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • Python中Pytest測(cè)試框架的fixture使用詳解

    Python中Pytest測(cè)試框架的fixture使用詳解

    這篇文章主要介紹了Python中Pytest測(cè)試框架的fixture使用詳解,Pytest的fixture的目的是提供一個(gè)測(cè)試的基線,在此基線基礎(chǔ)上,可以更可靠的進(jìn)行重復(fù)測(cè)試,需要的朋友可以參考下
    2023-08-08
  • Python在終端通過(guò)pip安裝好包以后在Pycharm中依然無(wú)法使用的問(wèn)題(三種解決方案)

    Python在終端通過(guò)pip安裝好包以后在Pycharm中依然無(wú)法使用的問(wèn)題(三種解決方案)

    這篇文章主要介紹了Python在終端通過(guò)pip安裝好包以后在Pycharm中依然無(wú)法使用的問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03

最新評(píng)論

太仆寺旗| 大悟县| 上虞市| 文成县| 丘北县| 娄烦县| 顺昌县| 昌邑市| 和硕县| 临江市| 屏南县| 赣州市| 隆子县| 汉阴县| 博客| 全椒县| 平原县| 赤水市| 木里| 台南市| 罗平县| 吉隆县| 蓝山县| 兴山县| 大安市| 永清县| 尼玛县| 江西省| 军事| 内江市| 淳化县| 会同县| 集安市| 伊宁县| 微山县| 靖宇县| 博乐市| 宁波市| 永仁县| 珲春市| 海城市|