Day33类装饰器

类的装饰器是 Python 中用于动态修改类的结构或行为的工具,核心是 "在不修改类源码的前提下,扩展 / 增强类的功能"。

类装饰器的核心特点(对比函数装饰器):

类装饰器的简单示例:

比如给类动态添加一个属性和方法:

复制代码
# 定义类装饰器
def add_attr_and_method(cls):
    # 给类添加属性
    cls.new_attr = "我是装饰器添加的属性"
    # 给类添加方法
    def new_method(self):
        print("我是装饰器添加的方法")
    cls.new_method = new_method
    # 返回修改后的类
    return cls

# 使用类装饰器
@add_attr_and_method
class MyClass:
    pass

# 测试效果
obj = MyClass()
print(obj.new_attr)  # 输出:我是装饰器添加的属性
obj.new_method()     # 输出:我是装饰器添加的方法

类装饰器的核心逻辑:

通过 "接收类 → 修改类 → 返回类" 的流程,外部动态修改类的结构,既保持了原类代码的简洁,又能灵活扩展功能

@浙大疏锦行

相关推荐
阿龙AI日记2 小时前
保姆级教程:Anaconda+Cuda+Torch+Pycharm配置指南
ide·pytorch·python·pycharm
测试人社区—小叶子2 小时前
边缘计算与AI:下一代智能应用的核心架构
运维·网络·人工智能·python·架构·边缘计算
二川bro2 小时前
性能分析指南:Python cProfile优化实战
开发语言·python
忆~遂愿2 小时前
昇腾 Triton-Ascend 开源实战:架构解析、环境搭建与配置速查
人工智能·python·深度学习·机器学习·自然语言处理
测试人社区—小叶子2 小时前
金融系统迁移测试:历时半年的完整实践复盘
运维·网络·人工智能·python·测试工具·金融
Q_Q5110082852 小时前
python+springboot+django/flask基于深度学习的音乐推荐系统
spring boot·python·django·flask·node.js·php
sunshine~~~2 小时前
ROS 2 Jazzy + Python 3.12 + Web 前端案例
开发语言·前端·python·anaconda·ros2
Q_Q5110082852 小时前
python+springboot+django/flask基于深度学习的淘宝用户购物可视化与行为预测系统
spring boot·python·django·flask·node.js·php
s9123601012 小时前
【rust】生成带白边的标准二维码
开发语言·后端·rust