Аналитики данных и Data Scientist’ы очень любят Python – удобный в изучении и простой в использовании объектно-ориентированный язык, который содержит множество встроенных функций и позволяет создавать собственные. Согласно принципу DRY (Don’t Repeat Yourself), современным стандартом разработки является упаковка кода в классы, которые предоставляют API для использования их методов. На практике создавать собственные классы в Python приходится достаточно часто, с последующим дополнением и расширением их по мере работы. Делать это быстрее поможет стандартный модуль dataclasses, который сперва следует импортировать. Затем нужно задекорировать пользовательский класс специальной функцией dataclass, а внутри этого класса перечислить необходимые атрибуты, предварительно их аннотировав, т.е. задав типы. Например, для пользовательского класса Person с целочисленным идентификатором и строковым именем это будет выглядеть так:
from dataclass import dataclass
@dataclass
class Person:
id: int
name: str
Модуль dataclasses предоставляет декоратор и функции для автоматического добавления сгенерированных специальных методов, таких как init () и repr (), в определенные пользователем классы. Впрочем, пользоваться модулем dataclasses нужно с умом и знать о следующих особенностях:
• по умолчанию модуль не проверяет тип, указанный в аннотации переменной;
• декоратор dataclass() добавляет в пользовательский класс некоторые методы, которые могут быть лишними и дублировать поведение уже существующих в классе;
• при использовании декоратора dataclass(), все базовые классы просматриваются в обратном порядке, начиная с объекта и для каждого найденного класса добавляются атрибуты его родителя в упорядоченное отображение полей. Все сгенерированные методы будут использовать это комбинированное вычисляемое упорядоченное сопоставление полей. А, поскольку поля расположены в порядке их вставки, производные классы переопределяют базовые.
#machinelearning #artificialintelligence #ai #datascience #python #programming #technology #deeplearning