91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在python項目中使用裝飾器

發布時間:2021-03-23 14:53:30 來源:億速云 閱讀:169 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在python項目中使用裝飾器,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

python裝飾器的作用就是在不想改變原函數代碼的情況下,增加新的功能.主要應用了python閉包的概念,現在用1個小例子說明

import time
def foo():
  time.sleep(1)
  
def bar():
  time.sleep(2)
  
def show_time(f):
  def inner():
    start_time = time.time()
    f()
    end_time = time.time()
    print(end_time-start_time)
  return inner
#show_time(f) is a decoration function
foo = show_time(foo)
bar = show_time(bar)

foo()
bar()

上面的代碼定義了兩個函數foo()和bar(). 通過裝飾器函數show_time(f),在其內部定義了另一個閉包函數inner(),再通過foo=show_time(foo),bar=show_time(bar)語句將foo()和bar()函數同裝飾器函數關聯起來,從而實現了不改變foo()和bar()函數代碼,增加打印程序執行時間的功能.程序的執行結果如下:

1.0011370182
2.00142788887

顯然,程序在沒有改變原函數的情況下,實現了調用原函數顯示程序運行時間的功能.

上面的小程序可以將調用裝飾器的語句改成@decoration的形式,效果是造價的,改變后的程序如下,其功能和上面的程序完全相同.

import time

@show_time #foo = show_time(foo)
def foo():
  time.sleep(1)
 
@show_time #bar = show_time(bar)
def bar():
  time.sleep(2)
  
  
def show_time(f):
  def inner():
    start_time = time.time()
    f()
    end_time = time.time()
    print(end_time-start_time)
  return inner
#show_time(f) is a decoration function

foo()
bar()

關于如何在python項目中使用裝飾器就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

缙云县| 庐江县| 灵璧县| 邹城市| 长治县| 镇沅| 宣威市| 龙陵县| 三穗县| 孝昌县| 台安县| 吴桥县| 贞丰县| 佳木斯市| 莫力| 常山县| 华宁县| 清水河县| 上高县| 白水县| 博野县| 呼玛县| 海盐县| 屯昌县| 广平县| 定远县| 淄博市| 浠水县| 郎溪县| 太和县| 迁安市| 剑川县| 新蔡县| 绍兴县| 手机| 广州市| 灌云县| 平谷区| 永春县| 凤翔县| 绥中县|