#裝飾器帶引數
'''帶引數的裝飾器是三層的
最外層的函式負責接受裝飾器引數
裡面的內容還是源裝飾器的內容
'''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...