0
点赞
收藏
分享

微信扫一扫

python __set__ __get__ __delete__

ivy吖 2022-06-27 阅读 44
class Attr(object):
def __init__(self,attrname,attrtype):
self.attrname=attrname
self.attrtype=attrtype
def __get__(self,instance,value):
return instance.__dict__[self.attrname]
def __set__(self,instance,value):
if not isinstance(value,self.attrtype):
raise TypeError("%s type error"%self.attrname)
instance.__dict__[self.attrname]=value
def __delete__(self,instance):
del instance.__dict__[self.attrname]

class Person(object):
name=Attr("name",str)
age=Attr("age",int)
p=Person()
p.age="23"

 


举报

相关推荐

0 条评论