Data classes в python
Что такое data classes и для чего они нужны?
Одна из новых возможностей, появившихся в Python 3.7 — классы данных (Data classes). Они призваны автоматизировать генерацию кода классов, которые используются для хранения данных. Не смотря на то, что они используют другие механизмы работы, их можно сравнить с "изменяемыми именованными кортежами со значениями по умолчанию".
Большинству python-разработчикам приходится регулярно писать классы.
Пример data class.
Создадим DataClass, представляющий собой разные виды мячей:
По умолчанию у декоратора Data Class есть методы __init__, __repr__ и __eq__, поэтому их не нужно реализовывать самостоятельно.
И пусть __init__, __repr__ и __eq__ не реализованы в классе Balls их по-прежнему можно использовать благодаря dataclass. Это экономит время.
Также стоит отметить name, number и color являются полями нашего класса. Стоит отметить, что с ними необходимо использовать определения типов данных
Обратите внимание, что для некоторых полей заданы значения по умолчанию. Дефолтным значением может быть изменяемая величина, и даже можно задать список допустимых значений. Например, вот так:
Дописываем тест и получаем:
Конвертация в словарь или кортеж.
Можно получить атрибуты Data Class в кортеже или словаре. Для этого нужно лишь импортировать функции asdict и astuple из Data Class.
Пример с asdict:
Пример с astuple:
Подклассы
Можно создавать подклассы для Data Class как для обычных классов в Python:
Подписывайтесь на канал, тут каждый день выходят новые уроки.
Все уроки, а также коды с уроков вы можете найти в моем telegram канале.
Также каждый день в telegram канале появляются полезные книги и пособия с материалом по программированию, а также выходят эффективные фишки, которые значительно упрощают вашу работу с программированием.