裝飾器
類裝飾器
裝飾器還有一種特殊的語(yǔ)法就是類裝飾器,就是通過(guò)定義一個(gè)類來(lái)裝飾函數(shù)。
注意:
需要讓類的實(shí)例對(duì)象能夠像函數(shù)一樣進(jìn)行調(diào)用,需要在類里面使用__call__魔法方法,把類的實(shí)例變成可調(diào)用對(duì)象(callable 請(qǐng)求即付的);
類裝飾器裝飾函數(shù)功能在__call__方法里進(jìn)行添加

# 靈魂語(yǔ)法: f1=類名(f1) f1從函數(shù)變成了對(duì)象, f1(xxx)實(shí)則是 f1.__call__(xxx)
resurlt = f1(yy)
代碼說(shuō)明:
1、@類裝飾器名:等價(jià)于“函數(shù)引用 = 類名(函數(shù)引用)”,所以需要提供一個(gè)__init__方法,并多增加一個(gè)fn參數(shù)。
2、在__call__方法里進(jìn)行對(duì)fn函數(shù)的裝飾,可以添加額外的功能。
多個(gè)裝飾器的使用
直接上代碼,根據(jù)代碼理解

多個(gè)裝飾器的裝飾過(guò)程就是:離函數(shù)最近的裝飾器先裝飾,然后外面的裝飾器再進(jìn)行裝飾,由內(nèi)到外的裝飾過(guò)程。
---------------------
版權(quán)聲明:本文為CSDN博主「鬼義虎神」的原創(chuàng)文章,遵循CC 4.0 by-sa版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013487601/article/details/97921138