python之描述符的应用

class Foo:    def __init__(self,key,hope_type):        self.key=key        self.hope_type=hope_type    def __get__(self, instance, owner):        print(‘输出get‘)        return instance.__dict__[self.key]    def __delete__(self, instance):        print(‘输出delete‘)        instance.__dict__.pop(self.key)    def __set__(self, instance, value):        if not isinstance(value,self.hope_type):            raise TypeError(‘您输入的类型是%s‘%self.hope_type)        instance.__dict__[self.key]=valueclass Test:    name=Foo(‘name‘,str)    age=Foo(‘age‘,int)    def __init__(self,name,age,salary):        self.name=name        self.age=age        self.salary=salaryf=Test(‘alex‘,‘18‘,200)

相关推荐