對類中屬性訪問,并修改他的行為
可以直接使用類裝飾器
""" 類裝飾器擴展 類功能 """ 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_getattribute class Valley: def __init__(self): self.name: str = "xiao_gu_a" print(Valley().name)
除此之外,使用繼承,對__getattribute__進行重寫也能實作,只不過要依賴于super,對技能要求會稍微高一點;
相比較而言,類裝飾器更直觀一點,而且不會引入新的繼承體系,運行速度也會更快
只有永不遏止的奮斗,才能使青春之花,即便是凋謝,也是壯麗地凋謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552484.html
標籤:其他
上一篇:Python工具箱系列(三十二)
下一篇:返回列表
