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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。