原則:開放封閉
可以擴充套件,但是不可以修改。也就是說軟體對擴充套件開放,對修改關閉。
運用技術:閉包
一共兩種方法,乙個使用閉包,乙個使用類
使用多個裝飾器是從上到下
def
test2
(func)
:def
return_
(num,
*args,
**kwargs)
:print
("test2"
)print
("附加%d"
% num)
return func(num,
*args,
**kwargs)
return return_
deftest1
(func)
:def
return_
(num,
*args,
**kwargs)
:print
("test1"
)print
("附加%d"
% num)
return func(num,
*args,
**kwargs)
return return_
class
test3
(object):
def__init__
(self,func)
: self.func = func
pass
def__call__
(self, name,
*args,
**kwargs)
:print
("test3"
) self.func(name,
*args,
**kwargs)
@test3
@test2
@test1
deforin
(num,
*args,
**kwargs)
:print
("原來%d"
% num)
for i in args:
print
(i)for i in kwargs:
print
(i,kwargs[i]
)return
"最後我返回"
a = orin(
200,
100,
500,nums=
1000
,w=2022
)print
(a)
個人部落格**
個人github位址
mini web之裝飾器方式的新增路由
前面我們已經實現了路由列表,但是每次新增路由都需要手動新增來完成,接下來我們想要完成路由的自動新增,可以通過裝飾器來實現,在使用裝飾器對處理函式進行裝飾的時候我們需要知道裝飾的函式和那個請求路徑進行關聯,也就是說裝飾器需要接收乙個url引數,這樣我們定義的裝飾器是乙個帶有引數的裝飾器。framewo...
angular裝飾器總結
ngmodule 複製 component providers?provider exportas?string queries?複製 directive providers?provider exportas?string queries?複製 pipe 複製 injectable 複製 attr...
Python 裝飾器總結
目錄閉包 裝飾器簡單裝飾器 修飾帶參函式的裝飾器 本身帶引數的裝飾器 類裝飾器 裝飾器缺點 裝飾器用途 說到裝飾器就不能忽略閉包,下面先介紹一下閉包的概念 在一些語言中,在函式中可以 巢狀 定義另乙個函式時,如果內部的函式引用了外部的函式的變數,則可能產生閉包。閉包可以用來在乙個函式與一組 私有 變...