裝飾器的作用:在函式執行前或執行後執行一段**做一些通用處理
與直接在函式中寫**相比,優點在於可復用
呼叫形式為函式前@名字
@dec
def f(i):
裝飾器執行邏輯:
系統看到裝飾器,將不呼叫原函式
呼叫裝飾器函式,將原函式作為引數傳入
此函式返回乙個函式,系統執行返回的函式(有意思的地方來了 返回的函式可以不包括原函式,也就是讓呼叫原函式指令失效)
同時系統將把原函式的引數賦予給返回的函式
**示例
原函式接受乙個引數
裝飾器接受原函式 返回乙個函式
功能:返回的函式中輸出接受到的引數 把其中乙個引數再傳給原函式執行
*a替代不定長普通引數 重點在* 可以是*b *c
a是乙個元組 此示例中=(1, 2, 3)
**b替代不定長引數 重點在**
b是乙個字典 此示例中=
import time
def dec(f):
def wrap(*a,**b):
s=time.time()
for i in a:
print(i,end=' ')
for i in b:
print('{}:{}'.format(i,b[i]))
f(a[0])
print('spend:{}'.format(time.time()-s))
return wrap
@dec
def f(i):
print('函式引數{}'.format(i))
time.sleep(0.5)
f(1,2,3,a=1,b=2)
python簡單裝飾器 python裝飾器簡單使用
理解裝飾前先理解python閉包的概念 下面是對裝飾器的簡單舉例 實質 是乙個函式 引數 是你要裝飾的函式名 並非函式呼叫 返回 是裝飾完的函式名 inner 作用 為已經存在的物件新增額外的功能 特點 不需要對物件做任何的 上的變動 被裝飾的函式無引數 def decorate func 裝飾器列...
python裝飾器介紹 Python之裝飾器簡介
python函式式程式設計之裝飾器 1.開放封閉原則 簡單來說,就是對擴充套件開放,對修改封閉。在物件導向的程式設計方式中,經常會定義各種函式。乙個函式的使用分為定義階段和使用階段,乙個函式定義完成以後,可能會在很多位置被呼叫。這意味著如果函式的定義階段 被修改,受到影響的地方就會有很多,此時很容易...
Python的裝飾器介紹
通俗點說,裝飾器就是乙個返回值是函式的函式,這麼說可能有點繞。仔細分解 1.首先它是函式 2.它的返回值是乙個函式 裝飾器是乙個返回函式的函式 默讀三十遍 那麼它的作用是什麼呢?還是一句話描述的話 用於增強其他已存在函式的功能!目的是在不改變原函式名 類名 的情況下,給函式增加新的功能。先來點前奏 ...