网络编程
位置:首页>> 网络编程>> Python编程>> python如何对实例属性进行类型检查

python如何对实例属性进行类型检查

作者:北门吹雪  发布时间:2021-08-17 09:28:19 

标签:python,实例属性,类型检查

本文实例为大家分享了python对实例属性进行类型检查的具体代码,供大家参考,具体内容如下

案例:

在某项目中,我们实现了一些类,并希望能像静态语言那样对他们的实例属性进行类型检查

              p = Person()

              p.name = ‘xi_xi'         # 必须是str

              p.age = 18                  # 必须是int

              p.height = 1.75              # 必须是float

需求:

可以对实例变量名指定类型

赋予不正确类型抛出异常


#!/usr/bin/python3

class Attr(object):
"""
对Person类中属性进行类型检查
"""
# 传入字段名字 + 指定字段类型
def __init__(self, name, style):
 self.name = name
 self.style = style

# 取值
def __get__(self, instance, owner):
 return instance.__dict__[self.name]

# 设值
def __set__(self, instance, value):
 # 判断参数类型是否满足条件
 if isinstance(value, self.style):
  instance.__dict__[self.name] = value
 else:
  raise TypeError('need type: %s' % self.style)

# 删除值
def __delete__(self, instance):
 del instance.__dict__[self.name]

class Person(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)

del p.height

来源:http://www.cnblogs.com/2bjiujiu/p/7289387.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com