欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python裝飾器常見使用方法分析

 更新時間:2019年06月26日 11:22:12   作者:輕舞肥羊  
這篇文章主要介紹了python裝飾器常見使用方法,結(jié)合實例形式分析了Python裝飾器的功能及三種常見的裝飾模式使用技巧,需要的朋友可以參考下

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

python 的裝飾器,可以用來實現(xiàn),類似spring AOP 類似的功能。一樣可以用來記錄某個方法執(zhí)行前做什么,執(zhí)行后做什么,或者用來記錄日志,運行的時間等,更有甚者,用這個來做權限攔截,也未嘗不可。從兩個方面來描述python 的裝飾模式:

1. 對普通方法的裝飾

2. 對在 class 類中的方法的裝飾,不需要給參數(shù)的情況

3. 對在 class 類中的方法的裝飾,需要給參數(shù)的情況

一,對普通方法的裝飾。比如,要計算一個一個方法執(zhí)行的時間.

#coding:utf-8
import time
def timeit(func):
  def wrapper(*args, **kv):
    start = time.clock()
    print '開始執(zhí)行'
    func(*args, **kv)
    end =time.clock()
    print '花費時間:', end - start
  return wrapper
@timeit
def foo():
  print 'in foo()'
if __name__=='__main__':
  foo()

運行結(jié)果:

開始執(zhí)行
in foo()
花費時間: 6.55415628267e-05

可以看到,計算出了時間差。而不是像普通方法一樣,寫在一個函數(shù)里面實現(xiàn)。

二、對在 class 類中的方法的裝飾,不需要給參數(shù)的情況

#coding:utf-8
import time
def timeit(func):
  def wrapper(*args, **kv):
    start = time.clock()
    print '開始執(zhí)行'
    func(*args, **kv)
    end =time.clock()
    print '花費時間:', end - start
  return wrapper
class MySpendTime(object):
  def __init__(self):
    pass
  @timeit
  def foo(self):
    print 'in foo()'
spendtime=MySpendTime()
spendtime.foo()

運行結(jié)果:

開始執(zhí)行
in foo()
花費時間: 4.42208134735e-05

三、對在 class 類中的方法的裝飾,需要給參數(shù)的情況

#coding:utf-8
'''
Created on 2012-11-1
@author: yihaomen.com
'''
def UpdateUI(msg, step):
  print u"內(nèi)容:", msg
  print u"步驟:到第%s步了" % step
  def dec(func):
    def wapper(self, *args, **kwargs):
      func(self,*args, **kwargs)
    return wapper
  return dec
class Command(object):
  def Excute(self):
    self.Work1st()
    self.Work2nd()
    self.Work3rd()
  @UpdateUI("開始第一步","1")
  def Work1st(self):
    print "Work1st"
  @UpdateUI("開始第二步", 2)
  def Work2nd(self):
    print "Work2nd"
  @UpdateUI("開始第三步", 3)
  def Work3rd(self):
    print "Work3rd"
if __name__=="__main__":
  command = Command()
  command.Excute()

運行結(jié)果:

內(nèi)容: 開始第一步
步驟:到第1步了
內(nèi)容: 開始第二步
步驟:到第2步了
內(nèi)容: 開始第三步
步驟:到第3步了
Work1st
Work2nd
Work3rd

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

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

相關文章

  • Python數(shù)據(jù)容器dict(字典)的實現(xiàn)

    Python數(shù)據(jù)容器dict(字典)的實現(xiàn)

    本文主要介紹了Python數(shù)據(jù)容器dict(字典)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • Python+ChatGPT實現(xiàn)5分鐘快速上手編程

    Python+ChatGPT實現(xiàn)5分鐘快速上手編程

    最近一段時間chatGPT火爆出圈!無論是在互聯(lián)網(wǎng)行業(yè),還是其他各行業(yè)都賺足了話題。俗話說:“外行看笑話,內(nèi)行看門道”,今天從chatGPT個人體驗感受以及如何用的角度來分享一下
    2023-02-02
  • Python標準庫urllib2的一些使用細節(jié)總結(jié)

    Python標準庫urllib2的一些使用細節(jié)總結(jié)

    這篇文章主要介紹了Python標準庫urllib2的一些使用細節(jié)總結(jié),本文總結(jié)了Proxy 的設置、Timeout 設置、Redirect、Cookie等細節(jié)的使用,需要的朋友可以參考下
    2015-03-03
  • tensorflow2 自定義損失函數(shù)使用的隱藏坑

    tensorflow2 自定義損失函數(shù)使用的隱藏坑

    本文主要介紹了tensorflow2 自定義損失函數(shù)使用的隱藏坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-07-07
  • Python根據(jù)指定日期計算后n天,前n天是哪一天的方法

    Python根據(jù)指定日期計算后n天,前n天是哪一天的方法

    這篇文章主要介紹了Python根據(jù)指定日期計算后n天,前n天是哪一天的方法,涉及Python日期與時間計算相關操作技巧,需要的朋友可以參考下
    2018-05-05
  • Python將字符串常量轉(zhuǎn)化為變量方法總結(jié)

    Python將字符串常量轉(zhuǎn)化為變量方法總結(jié)

    在本篇內(nèi)容里我們給大家整理了一篇關于Python將字符串常量轉(zhuǎn)化為變量方法的知識點總結(jié),有需要的朋友們學習下。
    2019-03-03
  • python協(xié)程之yield和yield?from實例詳解

    python協(xié)程之yield和yield?from實例詳解

    Python在并發(fā)處理上不僅提供了多進程和多線程的處理,還包括了協(xié)程,下面這篇文章主要給大家介紹了關于python協(xié)程之yield和yield?from的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 利用Python半自動化生成Nessus報告的方法

    利用Python半自動化生成Nessus報告的方法

    這篇文章主要介紹了利用Python半自動化生成Nessus報告的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • Python讀取xlsx文件的實現(xiàn)方法

    Python讀取xlsx文件的實現(xiàn)方法

    這篇文章主要介紹了Python讀取xlsx文件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python實現(xiàn)兩張圖片拼接為一張圖片并保存

    python實現(xiàn)兩張圖片拼接為一張圖片并保存

    這篇文章主要為大家詳細介紹了python實現(xiàn)兩張圖片拼接為一張圖片并保存,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07

最新評論