函数是个对象,并且可以赋值给一个变量,通过变量也能调用该函数:
1 def hello(): 2 print("hello") 3 h = hello 4 h()
利用魔法函数__name__,可以拿到函数的名字:
1 now.__name__ 2 h.__name__
如果我们在调用函数now()前后自动打印日志,但又不允许修改now()函数的定义——在代码运行期间动态增加功能的方式,称之为‘装饰器’Decorator。比如,定义一个能打印日志的decorator:
函数是个对象,并且可以赋值给一个变量,通过变量也能调用该函数:
1 def hello(): 2 print("hello") 3 h = hello 4 h()
利用魔法函数__name__,可以拿到函数的名字:
1 now.__name__ 2 h.__name__
如果我们在调用函数now()前后自动打印日志,但又不允许修改now()函数的定义——在代码运行期间动态增加功能的方式,称之为‘装饰器’Decorator。比如,定义一个能打印日志的decorator: