裝飾器帶引數

2021-10-04 22:49:24 字數 817 閱讀 3124

#裝飾器帶引數

'''帶引數的裝飾器是三層的

最外層的函式負責接受裝飾器引數

裡面的內容還是源裝飾器的內容

'''def

outer

(a):

#第一層 :負責接受引數的

defdecorate

(func)

:#第二層:負責接受函式的

def(

*wargs,

**kwargs)

:#第三層:負責接受函式的引數

func(

*wargs)

print

('------>鋪地磚{}塊'

.format

(a))

return decorate

@outer(10)

defhouse

(time)

:print

('我{}日期拿到了房子鑰匙,是毛坯房....'

.format

(time)

)@outer(

100)

defstreet()

:print

('新修街道名字是:黑泉路'

)house(

"2019-6-12"

)street(

)

執行結果:

我2019-6

-12日期拿到了房子鑰匙,是毛坯房...

.---

--->鋪地磚10塊

新修街道名字是:黑泉路--

----

>鋪地磚100塊

裝飾器 帶引數

如果明白裝飾器的原理那麼帶引數的裝飾器就很容易理解了 def s1 func definner a,b f1 inner a,b 接受2個引數,然後在把2個引數傳遞給func a,b print hello r func a,b print word return r return inner s1...

python 帶引數裝飾器

在前面一文 python裡為什麼需要使用裝飾器 decorator 裡,我們學習了為什麼需要裝飾器,知道裝飾器就是為了不修改原來函式的 又達到增加功能的作用。其實為了裝飾器更通用化,那麼裝飾器是否也可以帶引數呢?其實是可以的,這樣更加通用化了,達到共享極點。在前面也學習 為什麼要使用閉包 closu...

帶引數的裝飾器

一 帶引數的裝飾器 import functools import time def log kind def add log fun functools.wraps fun start time time.time res fun args,kwargs end time time.time ki...