dataclass的作用

dataclasss的作用

复制代码
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    gender: str = 'unknown'

# __init__方法用于初始化对象的属性。当创建一个类的实例时,Python会自动调用__init__方法来初始化对象的属性。例如,可以在__init__方法中为对象的属性赋初值。
person1 = Person('Alice', 25, 'female')
person2 = Person('Bob', 30, 'male')
person3 = Person('Alice', 25, 'female')

# __repr__方法用于返回对象的字符串表示。当使用print函数或者在交互式环境中输入对象名时,Python会自动调用__repr__方法来返回对象的字符串表示。例如,可以在__repr__方法中返回一个包含对象属性的字符串表示。
print(person1)
print(person2)
print(person3)
#  __eq__方法用于比较两个对象是否相等。当使用==运算符比较两个对象时,Python会自动调用__eq__方法来比较对象是否相等。例如,可以在__eq__方法中比较对象的属性是否相等。
print(person1 == person2)  # 输出:False
print(person1 == person3)  # 输出:True

输出结果:

Person(name='Alice', age=25, gender='female')

Person(name='Bob', age=30, gender='male')

Person(name='Alice', age=25, gender='female')

False

True

相关推荐
羊羊小栈6 分钟前
农业病害知识管理系统(基于前后端Web开发)
前端·人工智能·毕业设计·大作业
2601_961194027 分钟前
考研政治历年真题库
python·考研·django·virtualenv·pygame·tornado
韦胖漫谈IT7 分钟前
面向对象 vs 函数式背后的思维差异
开发语言
兰令水8 分钟前
【helloagent】第四章 agent范式总结+面经
python·语言模型
武子康8 分钟前
调查研究-156 Vercel 全栈应用 前端零配置极速上线:Serverless + 边缘网络 + CI/CD 全栈实战
前端·网络·ci/cd·ai·云原生·serverless·vecel
码云骑士10 分钟前
Chrome插件开发实战指南:从零到上架
前端·chrome·microsoft
Xin_ye1008610 分钟前
C# 零基础到精通教程 - WPF 深度专题:3D 图形与视觉增强
开发语言·c#·wpf
AI视觉网奇12 分钟前
3d查看 预览软件
python
kiritomzzz14 分钟前
Vue 插槽(Slot)全解析:从 Vue2 到 Vue3 核心用法与案例
前端·javascript·vue.js