描述符应用
2021/5/11 18:56:45
本文主要是介绍描述符应用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
'''描述符应用''' # class Typed: # def __set__(self, instance, value): # print('set方法执行') # print('instance参数%s' % instance) # print('value参数%s' % value) # # def __get__(self, instance, owner): # print('get方法执行') # print('instance参数%s' % instance) # print('owner参数%s' % owner) # # def __delete__(self, instance): # print('delete方法执行') # print('instance参数%s' % instance) # # class People: # name = Typed() # def __init__(self, name, age, salary): # self.name = name # self.age = age # self.salary = salary # # p1 = People('alex', 18, 10000.55) # p1.name # p1.name = 'lhf' # print(p1.__dict__) # 类实例化所传入参数加上字符类型限制 class Typed_1: def __init__(self, key, expected_type): # ①这里先定义一个__init__,以便作为instance实例属性字典的key值 self.key = key self.expected_type = expected_type def __set__(self, instance, value): if type(value) == self.expected_type: instance.__dict__[self.key] = value # ③这里通过self.key作为instance实例属性字典key值 else: raise TypeError('输入类型错误') def __get__(self, instance, owner): return instance.__dict__[self.key] def __delete__(self, instance): instance.__dict__.pop(self.key) class People_1: name = Typed_1('name', str) # ②这里需要传入两个值给__init__ age = Typed_1('age', int) salary = Typed_1('salary', float) def __init__(self, name, age, salary): self.name = name self.age = age self.salary = salary p2 = People_1('小明', 18, 300.33) # p3 = People_1(999, 18, 300.33) # p4 = People_1('小红', '18', 300.33) # p5 = People_1('小亮', 18, 300)
这篇关于描述符应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-01一个基于注解驱动的可视化的DDD架构-超越COLA的设计
- 2025-01-01PlantUML 时序图 基本例子
- 2025-01-01plantuml 信号时序图
- 2025-01-01聊聊springboot项目如何优雅进行数据校验
- 2024-12-31自由职业者效率提升指南:3个时间管理技巧搞定多个项目
- 2024-12-31适用于咨询行业的项目管理工具:提升跨团队协作和工作效率的最佳选择
- 2024-12-31高效协作的未来:2024年实时文档工具深度解析
- 2024-12-31商务谈判者的利器!哪 6 款办公软件能提升春节合作成功率?
- 2024-12-31小团队如何选择最实用的项目管理工具?高效协作与任务追踪指南
- 2024-12-31数据赋能,智慧养老:看板软件如何重塑养老服务生态