python裝飾器管理函式和類的注意點

johnychen發表於2021-09-11

python裝飾器管理函式和類的注意點

本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。

1、注意點

(1)用裝飾器修飾的函式或類主要應用場景,分為直接返回原始函式(類)和巢狀定義的代理函式物件。

(2)若直接返回園函式或類,則可確保修飾前後的資料屬性一致,並能獲得原始資料的屬性資訊。

(3)若返回的是包裝原函式或類代理函式物件,則此時資料屬性便發生變化,這種情況下一般多適用於呼叫。

2、例項

# 傳統寫法,每一個方法都呼叫了logging方法來做日誌的收集,冗餘,改起來還麻煩;
class TestDecorator:
 
    def print_title(self):
        logging();
        print("hello 我是title");
 
    def print_url(self):
        logging();
        print("hello 我是url");
 
def logging():
    import inspect
    # python內建的inspect.stack方法可以將你引用的模組檔案資訊保留在裡面,返回的是一個資料的資料形式
    method_name = inspect.stack()[1][3];
    print("Logger-info 進入方法 = {}".format(method_name))
 
def main():
    decorator = TestDecorator();
    decorator.print_title();
    decorator.print_url();
 
if __name__ == '__main__':
    main();

以上就是python裝飾器管理函式和類的注意點,希望能對大家有所幫助。更多Python學習指路:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4301/viewspace-2830442/,如需轉載,請註明出處,否則將追究法律責任。

相關文章