久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

瀏覽:24日期:2022-06-22 08:14:27
1、說(shuō)明

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

2、應(yīng)用場(chǎng)景

包括插入日志、性能測(cè)試、事務(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ù)@decoratordef function(param): print(’function : this is decorator ’ + param)# 兩個(gè)參數(shù)@decoratordef function1(param1, param2): print(’function1 : this is decorator ’ + param1) print(’function1 : this is decorator ’ + param2)# 三個(gè)參數(shù)(可變參數(shù))@decoratordef 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ù)注冊(cè)表

簡(jiǎn)單注冊(cè)表

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

注冊(cè)表隔離(使用類的不同實(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.registerdef a(): return 3 @r2.registerdef b(): return 5 @r1.register@r2.register

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

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 钟祥市| 张家港市| 深圳市| 阿鲁科尔沁旗| 阳信县| 宁蒗| 体育| 永寿县| 高陵县| 当雄县| 博野县| 饶河县| 泰顺县| 嫩江县| 闻喜县| 晴隆县| 开鲁县| 酒泉市| 台南县| 托里县| 濮阳市| 康保县| 丁青县| 双城市| 兴文县| 永胜县| 隆林| 红桥区| 临澧县| 大同县| 碌曲县| 宾阳县| 海口市| 平阳县| 抚顺县| 高要市| 南溪县| 梅河口市| 紫阳县| 渑池县| 平谷区|