函数式编程-装饰器

时间:2022-04-15 17:02:45

函数是个对象,并且可以赋值给一个变量,通过变量也能调用该函数:

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

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

  1 now.__name__
  2 h.__name__

     如果我们在调用函数now()前后自动打印日志,但又不允许修改now()函数的定义——在代码运行期间动态增加功能的方式,称之为‘装饰器’Decorator。比如,定义一个能打印日志的decorator: