描述符应用
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)
这篇关于描述符应用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南