简单地说:装饰器是修改其他函数的功能的函数,有助于让我们的代码更简短。
def a(func): def use_a(): print("before using func") func() print("after using func") return use_a def b(): print("using b") b() # output: using b b = a(b) b() # output: before using func using b after using func
上面的例子中,b函数为原函数,a可以理解为装饰器。通过b = a(b),实际上将b函数变成了use_a函数。这里涉及到python万物皆为对象的概念。
当然我们可以直接使用@来对函数装饰。
def a(func): def use_a(): print("before using func") func() print("after using func") return use_a @a def b(): print("using b") b() #output: before using func using b after using func
这是对装饰器基础的了解,还有待更新。