python如何对实例属性进行类型检查
作者:北门吹雪 时间:2021-08-17 09:28:19
本文实例为大家分享了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
标签:python,实例属性,类型检查
0
投稿
猜你喜欢
python通过opencv调用摄像头操作实例分析
2023-03-09 14:32:04
Python适配器模式代码实现解析
2023-04-15 12:58:14
学习ASP.NET八天入门:第七天
2007-08-07 13:52:00
效控制C#中label输出文字的长度,自动换行
2023-07-22 04:02:49
Python进阶篇之正则表达式常用语法总结
2022-03-27 08:45:18
详解Python安装scrapy的正确姿势
2023-04-04 01:38:14
web版Photoshop来了
2008-04-21 13:39:00
python爬虫爬取某站上海租房图片
2023-04-21 09:09:56
min-height 的原始实现方式
2008-06-29 15:04:00
在python tkinter中Canvas实现进度条显示的方法
2023-06-04 18:12:56
Python中的list.sort()方法和函数sorted(list)
2021-07-29 17:02:23
asp中如何过滤到单引号
2009-07-05 18:38:00
[JS]点出统计器
2013-07-22 03:23:24
PyCharm在win10的64位系统安装实例
2022-10-14 20:24:46
Python字符串中查找子串小技巧
2022-04-16 10:58:04
从零开始写jQuery框架
2008-12-24 13:37:00
Python实现简单求解给定整数的质因数算法示例
2021-05-27 09:23:08
一行Python代码制作动态二维码的实现
2023-11-04 02:32:19
django_orm查询性能优化方法
2021-03-01 20:30:19
python-for x in range的用法(注意要点、细节)
2022-11-12 22:40:49