1. 程式人生 > >函數式編程-裝飾器

函數式編程-裝飾器

一個 自動 對象 調用函數 def 代碼 裝飾 函數式 clas

函數是個對象,並且可以賦值給一個變量,通過變量也能調用該函數:

  1 def hello():
  2     print("hello")
  3 h = hello
  4 h()

利用魔法函數__name__,可以拿到函數的名字:

  1 now.__name__
  2 h.__name__

如果我們在調用函數now()前後自動打印日誌,但又不允許修改now()函數的定義——在代碼運行期間動態增加功能的方式,稱之為‘裝飾器’Decorator。比如,定義一個能打印日誌的decorator:

函數式編程-裝飾器