创建新的类或实例属性-华为云大数据中台架构分享

时间:2024-07-01 05:00:39
【文件属性】:

文件名称:创建新的类或实例属性-华为云大数据中台架构分享

文件大小:5.68MB

文件格式:PDF

更新时间:2024-07-01 05:00:39

Python cookbook 中文 参考

8.9 创建新的类或实例属性 问题 你想创建一个新的拥有一些额外功能的实例属性类型,比如类型检查。 解决方案 如果你想创建一个全新的实例属性,可以通过一个描述器类的形式来定义它的 功能。下面是一个例子: # Descriptor attribute for an integer type-checked attribute class Integer: def __init__(self, name): self.name = name def __get__(self, instance, cls): if instance is None: return self else: return instance.__dict__[self.name] def __set__(self, instance, value): if not isinstance(value, int): raise TypeError('Expected an int') instance.__dict__[self.name] = value def __delete__(self, instance): del instance.__dict__[self.name] 一个描述器就是一个实现了三个核心的属性访问操作(get, set, delete)的类, 分 别为 __get__() 、__set__() 和 __delete__() 这三个特殊的方法。 这些方法接受一 个实例作为输入,之后相应的操作实例底层的字典。


网友评论