文件名称:避免重复的属性方法-python cookbook(第3版)高清中文完整版
文件大小:4.84MB
文件格式:PDF
更新时间:2024-06-29 23:06:31
python cookbook 第3版 高清 中文完整版
9.21 避免重复的属性方法 问题 你在类中需要重复的定义一些执行相同逻辑的属性方法,比如进行类型检查,怎样去简化 这些重复代码呢? 解决方案 考虑下一个简单的类,它的属性由属性方法包装: class Person: def __init__(self, name ,age): self.name = name self.age = age @property def name(self): return self._name @name.setter def name(self, value): if not isinstance(value, str): raise TypeError('name must be a string') self._name = value @property def age(self): return self._age @age.setter def age(self, value): if not isinstance(value, int): raise TypeError('age must be an int') self._age = value 可以看到,为了实现属性值的类型检查我们写了很多的重复代码。 只要你以后看到类似 这样的代码,你都应该想办法去简化它。 一个可行的方法是创建一个函数用来定义属性 并返回它。例如: