直接使用示例进行说明演示,更为直观
@staticmethod:
不用实例化,可以直接调用。 A.a().
通过类名调用其他func,A.b()
不能访问实例变量、状态。
@classmethod:
不用实例化,可以直接调用。 A.a()。
调用其他func,cls.b()
可以访问实例变量、状态
替代构造函数
工厂模式
@property
应用于类的实例方法,将其转换为类的属性
@属性名.setter
@abstractmethod
用于声明抽象方法。抽象方法是在基类中定义但没有具体实现的方法,它需要在派生类中进行具体的实现。
@自定义
@是一种简写,代表了func = decorator_name(func)
基础:https://www.runoob.com/python/python-func-classmethod.html
进阶:https://blog.csdn.net/wuShiJingZuo/article/details/136304733
再进阶:https://blog.csdn.net/amateurSU/article/details/136673353
其他:https://mp.weixin.qq.com/s/4S9bY7kMbRagNylPnbhpsw
@timer:测量执行时间
@memoize:缓存结果
@validate_input 数据验证
@log_results: 日志输出
@suppress_errors: 优雅的错误处理
@retry:重试执行
@visualize_results:漂亮的可视化
@debug:调试变得容易
@deprecated:处理废弃的函数