文件名称:创建可管理的属性-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2024-07-01 05:00:38
Python cookbook 中文 参考
8.6 创建可管理的属性 问题 你想给某个实例 attribute 增加除访问与修改之外的其他处理逻辑,比如类型检 查或合法性验证。 解决方案 自定义某个属性的一种简单方法是将它定义为一个 property。 例如,下面的代 码定义了一个 property,增加对一个属性简单的类型检查: class Person: def __init__(self, first_name): self.first_name = first_name # Getter function @property def first_name(self): return self._first_name # Setter function @first_name.setter def first_name(self, value): if not isinstance(value, str): raise TypeError('Expected a string') self._first_name = value # Deleter function (optional) @first_name.deleter def first_name(self): raise AttributeError("Can't delete attribute") 上述代码中有三个相关联的方法,这三个方法的名字都必须一样。 第一个方法 是一个 getter 函数,它使得 first_name 成为一个属性。 其他两个方法给 first_name 属性添加了 setter 和 deleter 函数。 需要强调的是只有在 first_name