对类中属性访问,并修改他的行为

  可以直接使用类装饰器

"""类装饰器扩展类功能"""def log_getattribute(cls):    old_getattribute = cls.__getattribute__    def new_getattribute(self, name):        print("getting", name)        return old_getattribute(self, name)    cls.__getattribute__ = new_getattribute    return cls@log_getattributeclass Valley:    def __init__(self):        self.name: str = "xiao_gu_a"print(Valley().name)

除此之外,使用继承,对__getattribute__进行重写也能实现,只不过要依赖于super,对技能要求会稍微高一点;

相比较而言,类装饰器更直观一点,而且不会引入新的继承体系,运行速度也会更快

只有永不遏止的奋斗,才能使青春之花,即便是凋谢,也是壮丽地凋谢