Python - 属性描述符

 import numbers  class IntFiled:      def __get__(self, instance, owner):         return self.value      # 对age的类型做限制     def __set__(self, instance, value):         if not isinstance(value, numbers.Integral):             raise ValueError(int value need)         self.value = value   class User:     age = IntFiled()   # 关键点,变量名要和__init__中的属性一致     def __init__(self, age):         self.age = age  if __name__ == '__main__':     user =  User(18)      print(user.age) 

Debug 看下 instance 和 value 的值: