7.19. 类属性描述符¶
7.19.1. 用代码来理解¶
代码示例¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
#属性描述符
import numbers
#只要一个类实现了下面三种魔法函数中的一种,这个类就是属性描述符
class IntField:
def __get__(self, instance, owner):
return self.value
def __set__(self, instance, value):
if not isinstance(value,numbers.Integral):
raise ValueError("必须为int")
self.value = value
def __delete__(self, instance):
pass
class User:
age = IntField()
if __name__ == '__main__':
user = User()
user.age = "test"
# user.age = 24
print(user.age)