1. 程式人生 > >python基礎-裝飾器

python基礎-裝飾器

技術分享 pytho 方式 參數 需要 不改變 代碼 時間 擴展

    1、什麽是裝飾器

        裝飾指的是為被裝飾對象添加新的功能

        器指的是工具

      裝飾器本身可以任意可調用的對象,被裝飾的對象也可以是任意可調用的對象

    2、為什麽要裝飾器

        擴展新功能:寫一個函數用來為另外一個函數添加新功能,需要遵循開放封閉原則(對修改是封閉的,對擴展是開放的)

        1、不修改被裝飾對象的源代碼

        2、不修改裝飾對象的調用方式

    3、怎麽用

      例如:統計函數的時間

      技術分享圖片  

      1.創建新功能(計算時間)的函數

      技術分享圖片

      滿足了第一個要求,不改變源代碼。但調用方式改了

      2.創建裝飾器,將新函數設計成閉包函數,被調用函數以參數形式傳入裝飾器
      技術分享圖片

      3.變量接受裝飾器的返回值

      技術分享圖片

python基礎-裝飾器