裝飾器的使用
- 函式帶多個引數
普通的裝飾器, 列印函式的執行時間
def decrator(func):
def wrap(*args, **kwargs):
start_time = time.time()
res = func(*args, **kwargs)
end_time = time.time()
print('執行時間為', end_time-start_time)
return res
return wrap
- 裝飾器帶有多個引數
當裝飾器帶有多個引數的時候, 裝飾器函式就需要多加一層巢狀:
比如:
def decrator(*dargs, **dkargs):
def wrapper(func):
def _wrapper(*args, **kargs):
print ("裝飾器引數:", dargs, dkargs)
print ("函式引數:", args, kargs)
return func(*args, **kargs)
return _wrapper
return wrapper
為什麼被裝飾函式體可以傳入內層呢?
裝飾器函式有多個引數, 需要以@decrator(1, a=2)的方式使用, 這時候decrator是已經執行的(因為加了括號), 可以粗略的理解為載入被裝飾函式的上的是wrapper, 所以這和普通的裝飾器並無差別.
相關文章
- 使用 TypeScript 裝飾器裝飾你的程式碼TypeScript
- JavaScript裝飾器的使用JavaScript
- pytest fixtures裝飾器的使用
- Python 工匠:使用裝飾器的技巧Python
- python類裝飾器的使用注意Python
- Angular @HostListener 裝飾器的使用筆記Angular筆記
- python裝飾器2:類裝飾器Python
- python中的裝飾器的使用實戰Python
- python的裝飾器Python
- python裝飾器的集中使用姿勢Python
- 使用 js 修飾器封裝 axiosJS封裝iOS
- 介面測試使用Python裝飾器Python
- Python的黑魔法@property裝飾器的使用技巧Python
- 裝飾模式-使用裝飾器來寫表單驗證外掛模式
- python使用裝飾器實現的事件中心(監聽器)Python事件
- 如何使用 vue + typescript 編寫頁面 ( vuex裝飾器補充部分--store裝飾器 )VueTypeScript
- Javascript裝飾器的妙用JavaScript
- Python中的裝飾器Python
- 類裝飾器
- JS裝飾器JS
- Python 裝飾器Python
- Python裝飾器Python
- vscode使用ES6裝飾器器語法VSCode
- python的裝飾器@的用法Python
- 裝飾器的作用及使用方法是什麼?
- python中裝飾器的原理Python
- Python裝飾器的前世今生Python
- JavaScript中的裝飾器--DecoratorJavaScript
- OpenHarmony裝飾指定自定義元件:@BuilderParam裝飾器元件UI
- 裝飾器與後設資料反射(1)方法裝飾器反射
- Vue中使用裝飾器,我是認真的Vue
- Javascrip—裝飾器(7)Java
- 1.5.3 Python裝飾器Python
- Python 裝飾器(一)Python
- react 理解裝飾器React
- 裝飾器模式(Decorator)模式
- 裝飾器&遞迴遞迴
- wrap裝飾器包