程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python裝飾器

編輯:Python

10. 裝飾器

文章目錄

    • 10. 裝飾器
      • 10.1 定義
      • 10.2 作用
      • 10.3 功能特點
      • 10.4 使用步驟
      • 10.5 實質
      • 10.6 語法糖用法
      • 10.7 裝飾器的使用
      • 10.8 通用裝飾器的使用
        • 10.8.1 裝飾帶有參數的函數
        • 10.8.2 裝飾帶有返回值的函數
        • 10.8.3 裝飾帶有不定長參數的函數
        • 10.8.4 通用裝飾器
      • 10.9 多個裝飾器的使用
      • 10.10 帶有參數的裝飾器
      • 10.11 類裝飾器的使用

10.1 定義

給已有函數增加額外功能的函數,本質上就是一個閉包函數

符合了開發中的封閉開放原則

10.2 作用

在不改變原有函數的源代碼的情況下,給函數增加新的功能

10.3 功能特點

  1. 不修改已有函數的源代碼

  2. 不修改已有函數的調用方式

  3. 給已有函數增加額外的功能

10.4 使用步驟

① 定義一個裝飾器

② 使用裝飾器裝飾函數

10.5 實質

裝飾器就是把一個函數當做參數傳遞給閉包中的外部函數,同時在內部函數中使用這個函數,並給他添加新的功能

10.6 語法糖用法

@ 裝飾器名稱

10.7 裝飾器的使用

使用裝飾器實現函數執行時間的統計

10.8 通用裝飾器的使用

10.8.1 裝飾帶有參數的函數

10.8.2 裝飾帶有返回值的函數

10.8.3 裝飾帶有不定長參數的函數

10.8.4 通用裝飾器

10.9 多個裝飾器的使用

裝飾過程

  • 離函數最近的裝飾器先裝飾,然後外面的裝飾器再進行裝飾
  • 由內到外

10.10 帶有參數的裝飾器

語法格式: @裝飾器(參數,…)

裝飾器只能接收一個參數,並且還是函數類型

10.11 類裝飾器的使用

通過定義一個類來裝飾函數

想要讓類的實例對象能夠像函數一樣進行調用,需要在類裡面使用call方法,把類的實例變成可調用對象

類裝飾器的裝飾函數功能在call方法裡面進行添加


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved