python裡面的動態**.
存在的意義: 在不破壞原有的函式和原有函式的呼叫基礎上,給函式新增新的功能
fn是目標函式.
def inner(*args, **kwargs): #
為了目標函式的傳參
'''在執行目標函式之前.....
'''ret = fn(*args, **kwargs) #
呼叫目標函式, ret是目標函式的返回值
'''在執行目標函式之後....
'''return ret #
把目標函式返回值返回. 保證函式正常的結束
return
inner
#def
target_func():
pass
target_func()
#此時執行的是inner
裝飾器本身的引數目標函式
def inner(*args, **kwargs): #
目標函式執行需要的引數
if flag ==true:
print("
問問同學,看看有沒有場地")
ret = fn(*args, **kwargs) #
在執行目標函式之前
print("
同學騙我. 恨你")
return
ret
else
: ret = fn(*args, **kwargs) #
在執行目標函式之前
return
ret
return
inner
return
## 語法糖 @裝飾器
def play(): #
print("
走啊,打球去")
play()
defdef inner(*args, **kwargs):
print("
1111111")
ret = fn(*args, **kwargs)
print("
2222222")
return
ret
return
inner
def
def inner(*args, **kwargs):
print("
3333333")
ret = fn(*args, **kwargs)
print("
44444444")
return
ret
return
inner
def
def inner(*args, **kwargs):
print("
555555")
ret = fn(*args, **kwargs)
print("
666666")
return
ret
return
inner
#就近原則
deffunc():
print("
我是可憐的func")
func()
#1 2 3 func 3 2 1
python之路 裝飾器
def login1 login type print login type login type defauth1 args print 處理過程1 defauth2 args print 處理過程2 return auth2 return auth1 login1 qq home login1 ...
python之路 裝飾器
1.1什麼是裝飾器 裝飾器是由函式去生成的,用於裝飾某個函式或方法或類,他可以讓這個函式在執行之前或者執行之後做一些操作 先定義乙個函式 func def func arg print arg func hello world 執行結果為列印 hello world 現在在執行func 函式前後執行...
python之路(7)裝飾器
前言 裝飾器 為函式新增附屬功能,本質為函式 原則 不修改被修飾函式的源 不修改被修飾函式的呼叫方式 裝飾器 高階函式 函式巢狀 閉包 定義下面函式 def cal l res 0 for i in l time.sleep 0.1 res 1return res 想要實現檢測函式的執行時間 imp...