在《流畅的 Python》一书杂谈中推荐使用类来编写装饰器。就我的理解来说,简单的装饰器仍然使用传统的函数来定义比较好。而复杂的、涉及很多状态的装饰器,用类的方法定义,结构会更加清晰,容易扩展。
1 | class RouterBase: |
Python Web 框架中,我们会见到这样通过装饰器定义路由,而路由装饰器是非常复杂的,如果卸载一个函数中,这个函数一定是非常复杂的、难以维护的。而我们通过类定义这个路由装饰器,可以通过继承和在类中定义辅助函数,很好的拆分实现,进而优化我们的代码。
参考资料: