python如何对实例属性进行类型检查
本文实例为大家分享了python对实例属性进行类型检查的具体代码,供大家参考,具体内容如下
案例:
在某项目中,我们实现了一些类,并希望能像静态语言那样对他们的实例属性进行类型检查
p=Person()
p.name=‘xi_xi' #必须是str
p.age=18 #必须是int
p.height=1.75 #必须是float
需求:
可以对实例变量名指定类型
赋予不正确类型抛出异常
#!/usr/bin/python3
classAttr(object):
"""
对Person类中属性进行类型检查
"""
#传入字段名字+指定字段类型
def__init__(self,name,style):
self.name=name
self.style=style
#取值
def__get__(self,instance,owner):
returninstance.__dict__[self.name]
#设值
def__set__(self,instance,value):
#判断参数类型是否满足条件
ifisinstance(value,self.style):
instance.__dict__[self.name]=value
else:
raiseTypeError('needtype:%s'%self.style)
#删除值
def__delete__(self,instance):
delinstance.__dict__[self.name]
classPerson(object):
name=Attr('name',str)
age=Attr('age',int)
height=Attr('height',float)
if__name__=='__main__':
p=Person()
p.name='xi_xi'
#p.name=55
p.age=18
p.height=1.75
print(p.name,p.age,p.height)
delp.height
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。