在面向对象(OOP)的设计模式中,decorator被称为装饰器。
OOP的装饰器模式需要通过继承和组合来实现,因为返回的那个wrapper()函数的名字就是‘wrapper’,即需要把原始函数的 _ _ name _ _等属性复制到wrapper()函数中,否则,有些依赖函数签名的代码执行就会出错。
import.functools是导入functools模块。只要记住再wrapper()的前面加上@functools.wraps(func)即可。
在面向对象(OOP)的设计模式中,decorator被称为装饰器。
OOP的装饰器模式需要通过继承和组合来实现,因为返回的那个wrapper()函数的名字就是‘wrapper’,即需要把原始函数的 _ _ name _ _等属性复制到wrapper()函数中,否则,有些依赖函数签名的代码执行就会出错。
import.functools是导入functools模块。只要记住再wrapper()的前面加上@functools.wraps(func)即可。