巢湖网站建设费用,手机客户端app开发,小说网站怎么做防采集,网络新闻专题做的最好的网站Python中的dataclass是一个装饰器#xff0c;用于自动添加一些常见的方法#xff0c;如构造函数、__repr__、__eq__等。它简化了创建数据类的过程#xff0c;减少了样板代码#xff0c;提高了代码的可读性和可维护性。有点类似java里面的Java Bean。 让我们看一个简单的例子… Python中的dataclass是一个装饰器用于自动添加一些常见的方法如构造函数、__repr__、__eq__等。它简化了创建数据类的过程减少了样板代码提高了代码的可读性和可维护性。有点类似java里面的Java Bean。 让我们看一个简单的例子来说明dataclass的用法 from dataclasses import dataclassdataclass
class User:name: strage: intp1 User(小博, 18)
p2 User(小博, 18)
p3 User(小明, 19)print(p1) # Output: User(name小博, age18)
print(p1.__repr__()) # Output: User(name小博, age18)
print(p1 p2) # Output: True
print(p1.__eq__(p2)) # Output: True
print(p1 p3) # Output: False 在上面的例子中我们定义了一个名为User的数据类它有两个成员变量name和age。在这个简单的例子中dataclass自动为我们创建了以下方法 __init__: 自动添加了带有name和age参数的构造函数我们可以用User(小博, 18)的形式创建对象。__repr__: 自动添加了一个友好的表示对象的字符串方法我们可以通过print()函数查看对象的内容。__eq__: 自动添加了对象之间的相等比较方法我们可以使用来比较两个对象是否相等。 接下来让我们看一下dataclass的对象之间怎么比较 from dataclasses import dataclass, fielddataclass(orderTrue)
class Person:name: strage: int field(compareFalse) # 指定某个字段不参与排序height: float# 创建实例
person1 Person(Alice, 30, 185.5)
person2 Person(Bob, 25, 170.0)
person3 Person(Charlie, 35, 175.2)
person4 Person(Alice, 35, 175.2)
person5 Person(Bob, 25, 185.2)# 使用比较运算符进行排序
people [person1, person2, person3, person4, person5]
people_sorted sorted(people) # 默认升序
people_sorted sorted(people, reverseTrue)for person in people_sorted:print(person.name, person.age, person.height)输出结果
Charlie 35 175.2
Bob 25 185.2
Bob 25 170.0
Alice 30 185.5
Alice 35 175.2 要让类的实例对象之间进行比较需要在定义类的时候加上dataclass(order True)。默认将生成__gt__、__ge__、__lt__、__le__方法。如果传入False则省略它们。默认会按照类中定义的字段顺序进行对比第一个字段的值相等的时候就用第二个字段进行比较。要忽略某个字段不进行对比的话可以使用field(compareFalse) End 如果觉得文章对你有帮助的话欢迎点赞转发~
如果还没有进粉丝交流群的小伙伴赶快添加好友(xiaobotester)邀请你们进群喔。 关注公众号测试干货及时送达 为感谢所有粉丝的关注和长期以来的支持特在公众号后台为大家准备了一些资料可在后台回复【百宝箱/关键字】获取相关链接资料会持续更新有需要的可以先私聊作者补充文档。 往期精彩回顾 如何打造一篇优秀的简历 混迹职场多年的你面试真的准备好了吗 你还在抱怨职场的不公吗 职场篇-初入职场如何选择行业和公司面试逻辑题分享--字母数字映射关系推算题 非技术性的面试中的技巧性回答集锦建议收藏 你的求职简历中招了吗 测试编程笔试题No.1-输入表格列的英文名称返回其对应的数字序号 软件测试面试题分享-No.1 软件测试面试题分享-No.2 软件测试面试题分享-No.3 软件测试面试题分享-No.4 软件测试面试题分享-No.5 软件测试面试题分享-No.6某某某公司面试题 软件测试面试题分享-No.7接口自动化面试题 xxx公司测试岗位企业面试题