#38. Введение в Python Data Classes (часть 2) | Объектно-ориентированное программирование Python

preview_player
Показать описание

Параметры функции field(). Метод __post_init__(). Объявление параметров типа InitVar. Параметры декоратора dataclass.

Рекомендации по теме
Комментарии
Автор

Скоро 100к подписчиков. Хотя канал достоин миллиона

ityosni
Автор

Что я понял. Модуль Дата классы помогает ускорить работу разработчика. Автоматизирует рутину, описывая вместо разработчика стандартные методы при разработке класса. С помощью параметров декоратора можно настроить, какие методы автоматически пропишутся. Например, включить или выключить прописывание init-метода для класса. Если этого мало, есть настройка отдельных полей. Если кто-то думает, что модуль усложняет что-то - вы ошибаетесь. Когда выучите и начнете применять, поймете, как эта штука экономит время. Ведь иначе, вы все эти методы бы прописывали вручную (init, str. repr. eq и т.д)

cbkzmvj
Автор

Посмотрел первую часть про Data classes. Понравилось - эта примочка с классами данных вроде как упрощаяет код. Но второй ролик показал, что если исходная задача хотя бы немного усложняется, то код усложняется кратно со всеми этими post-init-ами, feild-ами и т.п.

-lavale-
Автор

Приятный голос отличный материал
Да ещё и бесплатно!
Однозначно лайк👍

idontknowidontknow
Автор

Большое спасибо за данное видео! Очень сильно помогло разобраться в деталях!

AndrewKyzmin
Автор

Лично мне больше нравится старый вариант создания класса

ehmjehmj
Автор

Спасибо за урок. Мне кажется, вы не сказали самое главное про InitVar. Этот тип используется для объявления псевдо-полей, которые не попадают в экземпляр, поэтому значения этого поля передаются в __post_init__. Если бы мы просто хотели доступ к calc_len из __post_init__, нам было бы достаточно использовать self.

qnzdtqv
Автор

Привет, спасибо за подробные объяснения! Добавь, пожалуйста, как использовать датаксласс с dataframe)

BeSelblu
Автор

А как frozen влияет на изменяемые объекты? Списки, например, можно изменять? Добавлять в список новые элементы, или удалять их?

markruffalo
Автор

Тема практического применения не раскрыта. Показаны все методы и способы но не обьяснено когда есть смысл использовать эти датаклассы и чем они лучше обмена данными через простые словари и обычные классы.

mr.senmax
Автор

Спасибо. Но проще и понятнее код такое не делает (как по мне).

andredru
Автор

ох уж этот синтаксический сахар в питоне

timofeybelyakov
Автор

Спасибо за уроки.Правда, у меня не получилось применить параметр slots. @dataclass(slots=True). Хотя у меня версия Python 3.8 Так тоже не получилось:
@dataclass
class SomeClass:
__slots__ = ('atr', )
Просто, неплохо бы использовать slots в dataclass

ucngtlo