主頁 > 知識(shí)庫 > Python裝飾器的應(yīng)用場景及實(shí)例用法

Python裝飾器的應(yīng)用場景及實(shí)例用法

熱門標(biāo)簽:地圖標(biāo)注微信發(fā)送位置不顯示 蓋州市地圖標(biāo)注 地圖標(biāo)注的意義點(diǎn) 房產(chǎn)電銷外呼系統(tǒng) 315電話機(jī)器人廣告 地圖制圖標(biāo)注位置改變是移位嗎 上海機(jī)器人外呼系統(tǒng)哪家好 南京銷售外呼系統(tǒng)軟件 浙江電銷卡外呼系統(tǒng)好用嗎

1、說明

裝飾本質(zhì)上是一個(gè)Python函數(shù),它能使其他函數(shù)在沒有任何代碼變化的情況下增加額外的功能。有了裝飾,我們可以抽出大量與函數(shù)功能無關(guān)的相同代碼,繼續(xù)重用。

2、應(yīng)用場景

包括插入日志、性能測試、事務(wù)處理、緩存和權(quán)限驗(yàn)證。

3、實(shí)例

# 裝飾器
# func指函數(shù)
def decorator(func):
    def wrapper(*args, **kwargs):
        # 執(zhí)行函數(shù)內(nèi)部邏輯 打印時(shí)間
        print(time.time(), args, kwargs)
        # 執(zhí)行調(diào)用函數(shù)中邏輯 打印不同參數(shù)
        func(*args, **kwargs)
    return wrapper
# 一個(gè)參數(shù)
@decorator
def function(param):
    print('function : this is decorator ' + param)
# 兩個(gè)參數(shù)
@decorator
def function1(param1, param2):
    print('function1 : this is decorator ' + param1)
    print('function1 : this is decorator ' + param2)
# 三個(gè)參數(shù)(可變參數(shù))
@decorator
def function2(param1, param2, **kwargs):
    print('function2 : this is decorator ' + param1)
    print('function2 : this is decorator ' + param2)
    print(kwargs)
function('param')
function1('param1' , 'param2')
function2('param1' , 'param2', x=1,y=2,z=3)

內(nèi)容擴(kuò)展:

函數(shù)注冊表

簡單注冊表

funcs = []
def register(func):
  funcs.append(func)
  return func    
@register
def a():
  return 3
  
@register
def b():
  return 5  
# 訪問結(jié)果
result = [func() for func in funcs]

注冊表隔離(使用類的不同實(shí)例)

class Registry(object):
  def __init__(self):
    self._funcs = []
  
  def register(self, func):
    self._funcs.append(func)
    
  def run_all(self):
    return [func() for func in self._funcs] 
r1 = Registry()
r2 = Registry()

@r1.register
def a():
  return 3
  
@r2.register
def b():
  return 5
  
@r1.register
@r2.register

到此這篇關(guān)于Python裝飾器的應(yīng)用場景及實(shí)例用法的文章就介紹到這了,更多相關(guān)Python裝飾器的應(yīng)用場景內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python裝飾器之@property
  • python 裝飾器的使用與要點(diǎn)
  • python高級(jí)語法之閉包和裝飾器詳解
  • Python pytest裝飾器總結(jié)(實(shí)例詳解)
  • python基礎(chǔ)之裝飾器詳解
  • Python 的lru_cache裝飾器使用簡介
  • Python 中@lazyprop 裝飾器的用法

標(biāo)簽:陽泉 克拉瑪依 雙鴨山 赤峰 日照 臨汾 貴州 金華

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python裝飾器的應(yīng)用場景及實(shí)例用法》,本文關(guān)鍵詞  Python,裝飾,器,的,應(yīng)用,場景,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python裝飾器的應(yīng)用場景及實(shí)例用法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python裝飾器的應(yīng)用場景及實(shí)例用法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章