亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Python裝飾器功能介紹

發布時間:2021-09-03 14:41:56 來源:億速云 閱讀:140 作者:chen 欄目:開發技術

這篇文章主要介紹“Python裝飾器功能介紹”,在日常操作中,相信很多人在Python裝飾器功能介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Python裝飾器功能介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

示例:尋找寶藏。在一個嵌套元組tuple或列表list中尋找元素'Gold Coin'

import time
from functools import lru_cache
def find_treasure(box):
 for item in box:
  if isinstance(item, (tuple, list)):
   find_treasure(item)
  elif item == 'Gold Coin':
   print('Find the treasure!')
   return True
start = time.perf_counter()
find_treasure(('sth', 'sth', 'sth',
    ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
    ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
    'Gold Coin', ))
end = time.perf_counter()
run_time_without_cache = end - start
print('在沒有Cache的情況下,運行花費了{} s。'.format(run_time_without_cache))
@lru_cache()
def find_treasure_quickly(box):
 for item in box:
  if isinstance(item, (tuple, list)):
   find_treasure(item)
  elif item == 'Gold Coin':
   print('Find the treasure!')
   return True
start = time.perf_counter()
find_treasure_quickly(('sth', 'sth', 'sth',
      ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
      ('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth'),
      'Gold Coin', ))
end = time.perf_counter()
run_time_with_cache = end - start
print('在有Cache的情況下,運行花費了{} s。'.format(run_time_with_cache))
print('有Cache比沒Cache快{} s。'.format(float(run_time_without_cache-run_time_with_cache)))

最終輸出

Find the treasure!
在沒有Cache的情況下,運行花費了0.0002182829999810565 s。
Find the treasure!
在有Cache的情況下,運行花費了0.00011638000000857573 s。
有Cache比沒Cache快0.00010190299997248076 s。

注記:運行這個示例時我的電腦配置如下

CPU:AMD Ryzen 5 2600
RAM:Kingston HyperX 8Gigabytes 2666

約使用7個月。

這個裝飾器可以在函數運行時記錄它的輸入值與運行結果。當元組('Bad Coin', 'normal coin', 'fish', 'sth', 'any sth')出現第二次時,加了這個裝飾器的函數find_the_treasure_quickly不會再次在遞歸時對這個元組進行查找,而是直接在“備忘錄”中找到運行結果并返回!

到此,關于“Python裝飾器功能介紹”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

AI

会泽县| 方正县| 武乡县| 银川市| 凤阳县| 洛宁县| 曲周县| 龙陵县| 增城市| 太谷县| 随州市| 张家口市| 临颍县| 建昌县| 屏山县| 五原县| 芷江| 政和县| 雅安市| 河间市| 永吉县| 宁都县| 沙坪坝区| 区。| 蓬溪县| 游戏| 湟中县| 那坡县| 蓬莱市| 梅河口市| 安图县| 托克托县| 泗阳县| 永修县| 临西县| 榆中县| 息烽县| 鞍山市| 扶风县| 沭阳县| 蒲城县|