python之裝飾器的概念

2022-05-13 14:31:15 字數 582 閱讀 9023

裝飾器對於程式來說雖然不是必要的,但有時候卻可以提高效率,也可以保證程式的安全。

說裝飾器之前需要掌握閉包,前面一篇文章已經介紹過,這裡不再重複。

那麼,裝飾器到底是什麼東西呢?看下面這個例子

首先定義了乙個函式 num,然後a b c d四個人都呼叫了這個函式。現在,a想對函式num的功能進行擴充套件,於是就修改了函式num的**。那麼問題來了,隨著a修改了num的**,導致了b c d三人在呼叫函式num的過程中也被迫呼叫了擴充套件後的num函式,可是b c d只想呼叫擴充套件之前的num函式怎麼辦呢?裝飾器應運而生。

看下面這張圖

這裡,函式num經過裝飾器裝飾過後再被a呼叫,就可以實現功能的擴充套件,而b c d還是可以繼續呼叫未被擴充套件前的num。

到這裡,裝飾器的功能就顯而易見了:在不修改原函式的情況下,給原函式擴充套件新的功能。

下面一篇介紹一下 裝飾器的寫法。

python裝飾器介紹 Python之裝飾器簡介

python函式式程式設計之裝飾器 1.開放封閉原則 簡單來說,就是對擴充套件開放,對修改封閉。在物件導向的程式設計方式中,經常會定義各種函式。乙個函式的使用分為定義階段和使用階段,乙個函式定義完成以後,可能會在很多位置被呼叫。這意味著如果函式的定義階段 被修改,受到影響的地方就會有很多,此時很容易...

python 找到裝飾器 Python之裝飾器

裝飾器本質上就是乙個python函式,他可以讓其他函式在不需要做任何 變動的前提下,增加額外的功能,裝飾器的返回值也是乙個函式物件。裝飾器的作用 在不改變原函式及原函式的執行的情況下,為原函式增加一些額外的功能,比如列印日誌 執行時間,登入認證等等。乙個簡單的裝飾器 import time def ...

Python概念之裝飾器 迭代器 生成器

裝飾器 迭代器 生成器均屬於函式知識範疇 理解裝飾器,首先要了解閉包函式。閉包函式 1 定義在函式內部的函式 2 該函式的函式體 包含對外部作用域 而不是全域性作用域 名字的引用 3 通常將閉包函式用return返回,然後可以任意呼叫。eg 以下 中inner 即閉包函式 def outer x 1...