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

Python裝飾器用法實例分析

 更新時間:2019年01月14日 09:46:11   作者:貝貝愛豆豆  
這篇文章主要介紹了Python裝飾器用法,結(jié)合實例形式分析了帶參數(shù)裝飾器、無參數(shù)裝飾器等相關(guān)實現(xiàn)與使用技巧,需要的朋友可以參考下

本文實例講述了Python裝飾器用法。分享給大家供大家參考,具體如下:

無參數(shù)的裝飾器

#coding=utf-8
def log(func):
  def wrapper():
    print 'before calling ',func.__name__
    func()
    print 'end calling ',func.__name__
  return wrapper
@log
def hello():
  print 'hello'
@log
def hello2(name):
  print 'hello',name
if __name__=='__main__':
  hello()

運行結(jié)果:

before calling  hello
hello
end calling  hello

帶參數(shù)的裝飾器:

#coding=utf-8
def log(func):
  def wrapper(name):
    print 'before calling ',func.__name__
    func(name)
    print 'end calling ',func.__name__
  return wrapper
@log
def hello(name):
  print 'hello',name
@log
def hello2(name):
  print 'hello',name
if __name__=='__main__':
  hello('haha')

運行結(jié)果:

before calling  hello
hello haha
end calling  hello

多個參數(shù)的時候:

#coding=utf-8
def log(func):
  '''
  *無名字的參數(shù)
  **有名字的參數(shù)
  :param func:
  :return:
  '''
  def wrapper(*args,**kvargs):
    print 'before calling ',func.__name__
    print 'args',args,'kvargs',kvargs
    func(*args,**kvargs)
    print 'end calling ',func.__name__
  return wrapper
@log
def hello(name,age):
  print 'hello',name,age
@log
def hello2(name):
  print 'hello',name
if __name__=='__main__':
  hello('haha',2)
  hello(name='hehe',age=3)

輸出:

end calling  hello
before calling  hello
args () kvargs {'age': 3, 'name': 'hehe'}
hello hehe 3
end calling  hello

裝飾器里帶參數(shù)的情況

本質(zhì)就是嵌套函數(shù)

#coding=utf-8
def log(level,*args,**kvargs):
  def inner(func):
    def wrapper(*args,**kvargs):
      print level,'before calling ',func.__name__
      print level,'args',args,'kvargs',kvargs
      func(*args,**kvargs)
      print level,'end calling ',func.__name__
    return wrapper
  return inner
@log(level='INFO')
def hello(name,age):
  print 'hello',name,age
@log
def hello2(name):
  print 'hello',name
if __name__=='__main__':
  hello('haha',2)

運行輸出:

INFO before calling  hello
INFO args ('haha', 2) kvargs {}
hello haha 2
INFO end calling  hello

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

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

相關(guān)文章

  • 利用python庫matplotlib繪制不同的圖表

    利用python庫matplotlib繪制不同的圖表

    這篇文章主要介紹了利用python庫matplotlib繪制不同的圖表,使用python中的matplotlib繪制圖表,主要分享繪制簡單的曲線圖、單條曲線圖、多條曲線圖、直方圖以及散點圖的思路和用法,需要的朋友可以參考一下
    2022-03-03
  • Python實現(xiàn)發(fā)送聲情并茂的郵件內(nèi)容和附件

    Python實現(xiàn)發(fā)送聲情并茂的郵件內(nèi)容和附件

    Python是一種高級編程語言,它可以用于編寫各種類型的應(yīng)用程序,包括發(fā)送電子郵件。本文就來演示如何使用Python發(fā)送HTML格式的電子郵件,感興趣的可以了解一下
    2023-04-04
  • 提升Python運行速度的5個小技巧

    提升Python運行速度的5個小技巧

    這篇文章主要為大家介紹了Python提升運行速度的幾個小技巧,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • selenium?UI自動化實戰(zhàn)過程記錄

    selenium?UI自動化實戰(zhàn)過程記錄

    如果大家有做過web的自動化測試,相信對于selenium一定不陌生,測試人員經(jīng)常使用它來進(jìn)行自動化測試,下面這篇文章主要給大家介紹了關(guān)于selenium?UI自動化實戰(zhàn)的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 基于Python實現(xiàn)nc批量轉(zhuǎn)tif格式

    基于Python實現(xiàn)nc批量轉(zhuǎn)tif格式

    做項目有時會運用到netCDF格式的氣象數(shù)據(jù),而ArcGIS中需要用柵格影像進(jìn)行處理,對于較多的文件,ArcGIS一個個手動轉(zhuǎn)換過于繁瑣,因此我們采用Python進(jìn)行轉(zhuǎn)換,下面就是Python實現(xiàn)nc批量轉(zhuǎn)tif格式的示例代碼,希望對你有所幫助
    2022-08-08
  • Python利用Flask動態(tài)生成漢字頭像

    Python利用Flask動態(tài)生成漢字頭像

    這篇文章主要為大家詳細(xì)介紹了Python如何利用Flask動態(tài)生成一個漢字頭像,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2023-01-01
  • 沒有安裝Python的電腦運行Python代碼教程

    沒有安裝Python的電腦運行Python代碼教程

    你有沒有遇到過這種情況,自己辛苦碼完了代碼想發(fā)給別人運行看效果,可是對方竟然沒安裝Python,這要怎么運行呢?本篇文章帶你解決這個問題,需要的朋友快來看看
    2021-10-10
  • Python實現(xiàn)的破解字符串找茬游戲算法示例

    Python實現(xiàn)的破解字符串找茬游戲算法示例

    這篇文章主要介紹了Python實現(xiàn)的破解字符串找茬游戲算法,簡單分析了找茬游戲的原理,并結(jié)合具體實例形式分析了Python實現(xiàn)破解找茬游戲的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • Python中實現(xiàn)從目錄中過濾出指定文件類型的文件

    Python中實現(xiàn)從目錄中過濾出指定文件類型的文件

    這篇文章主要介紹了Python中實現(xiàn)從目錄中過濾出指定文件類型的文件,本文是一篇學(xué)筆記,實例相對簡單,需要的朋友可以參考下
    2015-02-02
  • 基于Python制作一個匯率換算程序

    基于Python制作一個匯率換算程序

    這篇文章主要為大家詳細(xì)介紹了如何利用Python語言制作一個匯率換算程序,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-09-09

最新評論

汶上县| 吉林省| 封开县| 永平县| 崇左市| 石阡县| 胶州市| 酒泉市| 兴化市| 秦安县| 合肥市| 兴业县| 淳化县| 舟山市| 莱芜市| 林州市| 韶关市| 雅江县| 东乡族自治县| 武邑县| 竹山县| 年辖:市辖区| 宜兰市| 玛多县| 萨迦县| 嵩明县| 文昌市| 灵寿县| 广西| 五家渠市| 华坪县| 高邮市| 秀山| 长宁区| 庆元县| 兴义市| 宿迁市| 岳阳县| 衡南县| 长海县| 元谋县|