Python裝飾器用得太多是不是不易維護,看起不直觀?

時間 2021-06-01 16:20:04

1樓:小徐

python的decorator是乙個非常pythonic的東東。易不易以維護,看起來直不直觀,只跟開啟它的姿勢對不對。

python裝飾器的本質是input 乙個callable,output乙個callable。如果我們去看一些開源庫中裝飾器的應用,我們會發現,裝飾器的作用都是非常直觀的。比如用於快取的裝飾器,用於註冊的裝飾器,用於分派的裝飾器等等。

雖然裝飾器是可以不斷巢狀的,但是如果把每一層裝飾器撥開,它們本身的作用都是極其單純的。

所以,其實只要弄清了每乙個裝飾器都是幹嘛的。不論巢狀多少層,都是一目了然的。

當然,並不鼓勵巢狀太多。Remeber:Flat is better than nested.

2樓:孫竟

大部分時候可以當成乙個黑箱,有個簡單直觀的命名就可以忽略了。

你想學習、修改和查錯時,把函式的呼叫層次列出來即可。

不過話說回來,寫 decorator 的時候,我都是跟著感覺走,測試一下沒問題就當它 OK 了……

如何理解Python裝飾器?

這是我見過的最好的Python裝飾器教學文章 Primer on Python Decorators Real Python 假設我們有乙個 decorator defcount time name def decorator func def arg,kw start time time func...

什麼時候會用到python裝飾器?

decorator factory from functools import wraps defmax result threshold def decorator func wraps func def args,kwargs result func args,kwargs if result ...

如何理解python的描述器和裝飾器?

秦仲子 好傢伙,這一堆答案就沒個簡單明瞭的,讓我來。1.裝飾器 有個裝飾器函式funcA,有個被裝飾的函式funcB,如果用funcA裝飾funcB,那麼後續的呼叫時funcB執行效果就funcA funcB python用 符號完成了裝飾器模式,很好的遵循了開閉原則,應用於授權,日誌等場景,還實現...