Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpDcInr 119 of 174 menu
◀ ▶

Введение в датаклассы в ООП в Python

Часто класс нужен только для хранения данных: имени, возраста, зарплаты. Тогда приходится вручную писать конструктор, строковое представление и сравнение объектов.

Модуль dataclasses упрощает такую работу. Достаточно перечислить поля с аннотациями типов, а декоратор @dataclass соберет нужные методы сам.

Давайте сделаем класс User с полями name и age:

from dataclasses import dataclass @dataclass class User: name: str age: int

Создадим объект. Конструктор уже есть - его сгенерировал декоратор:

user = User('john', 25)

Выведем объект на экран. Сработает автоматически созданный метод __repr__:

print(user) # User(name='john', age=25)

Сравним два объекта с одинаковыми полями. Сработает метод __eq__:

user1 = User('john', 25) user2 = User('john', 25) print(user1 == user2) # выведет True

В этом разделе мы разберем настройку полей, заморозку, порядок сравнения и другие возможности датаклассов.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить