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]=value


class Test:
name=Foo('name',str)
age=Foo('age',int)
def __init__(self,name,age,salary):
self.name=name
self.age=age
self.salary=salary
f=Test('alex','18',200)

猜你喜欢

转载自www.cnblogs.com/cxydnxs/p/12350716.html
今日推荐