裝飾器的實現

2021-09-11 05:11:37 字數 688 閱讀 7968

裝飾器

在flask框架裡面,通過裝飾器傳參實現動態建立字典,來完成路由的功能

def

set_value

(value)

:def

set_fun

(func)

:def

call_fun

(*args,

**kwargs)

:print

("2019"

,value)

return func(

*args,

**kwargs)

return call_fun

return set_fun

# 分為兩步

# 先執行set_value,獲得閉包的引用

# 在執行@閉包的引用

# func獲得裝飾前test函式的引用

# 裝飾後test獲得了call_fun函式的引用

@set_value(

"年")

deftest()

:print

("test"

)test(

)

裝飾器傳參的功能一般很少用到,也很少見到,當然在各種框架裡面應該比較常見,裝飾器傳參的實現其實也很簡單,就是在裝飾器的外面在包裹一層函式,當呼叫最外層函式的時候會返回內層閉包的引用(也可以說是裝飾器的引用)

python裝飾器實現函式註冊和類裝飾器

01 一般情況下都是使用函式作為裝飾器,其實class也是可以的,function是callable物件,class只有重寫了 call 方法後,它的例項物件也就是callable物件了。02 裝飾器的巢狀 就乙個規律 巢狀的順序和 的順序是相反的。class functionmanager def...

用裝飾器實現登入

login status jingdong false login status weixin false defstart list list1 for i in list print i,list i select num input 請輸入訪問網頁的編號 退出 q if select num ...

裝飾器之類裝飾器

外部的方法至今都玩過了,現在來思索一下的方法這麼裝飾 類方法修飾器 類的方法唯一的特殊點在於,self內部是可以呼叫的,但是在外部卻是隱藏的,那這個怎麼搞 為求穩妥,先定參修飾乙個 def godme fun def godme self,message print before fun self,...