在《Python類方法和靜態方法》中提到了修飾器,修飾器和java中的注解看起來差不多,他到底是什麼東西呢?
先看一下一個最簡單的修飾器實現:
- def R(arg):
- print("修飾一下")
- return f
它看起來就是設計模式中提到的修飾設計模式,在原有的基礎上添加自己的修式。
不過python中的實現是返回了一個函數。這感覺有些閉包的概念,不過還好不是那麼的復雜。
我們來個復雜點的:
- def R(arg):
- def m(f)
- print("修飾一下")
- return f
- return m
具體的使用方法和java的注解是一樣的:
- @R(a)
- def na():
- pass