#38. Введение в Python Data Classes (часть 2) | Объектно-ориентированное программирование Python
HTML-код
- Опубликовано: 11 фев 2023
- Курс по Python ООП: stepik.org/a/116336
Параметры функции field(). Метод __post_init__(). Объявление параметров типа InitVar. Параметры декоратора dataclass.
Плейлист по Python ООП: • Объектно-ориентированн...
Инфо-сайт: proproprogs.ru/python_oop
Telegram-канал: t.me/python_selfedu
Data Classes: docs.python.org/3/library/dat...
Большое спасибо за данное видео! Очень сильно помогло разобраться в деталях!
Что я понял. Модуль Дата классы помогает ускорить работу разработчика. Автоматизирует рутину, описывая вместо разработчика стандартные методы при разработке класса. С помощью параметров декоратора можно настроить, какие методы автоматически пропишутся. Например, включить или выключить прописывание init-метода для класса. Если этого мало, есть настройка отдельных полей. Если кто-то думает, что модуль усложняет что-то - вы ошибаетесь. Когда выучите и начнете применять, поймете, как эта штука экономит время. Ведь иначе, вы все эти методы бы прописывали вручную (init, str. repr. eq и т.д)
Скоро 100к подписчиков. Хотя канал достоин миллиона
+
Посмотрел первую часть про Data classes. Понравилось - эта примочка с классами данных вроде как упрощаяет код. Но второй ролик показал, что если исходная задача хотя бы немного усложняется, то код усложняется кратно со всеми этими post-init-ами, feild-ами и т.п.
Код не усложняется, а упрощается. И читать его легче. Просто вы пока не выучили материал. Потом поймете.
Приятный голос отличный материал
Да ещё и бесплатно!
Однозначно лайк👍
Всем рекомендую данный канал
Буду завтракать и изучать, спасибо)
Отличный материал!
Лично мне больше нравится старый вариант создания класса
Огромный вам респект )))))))))) 😊😊
Спасибо за урок. Мне кажется, вы не сказали самое главное про InitVar. Этот тип используется для объявления псевдо-полей, которые не попадают в экземпляр, поэтому значения этого поля передаются в __post_init__. Если бы мы просто хотели доступ к calc_len из __post_init__, нам было бы достаточно использовать self.
Огромное вам спасибо!
Бомба💣
👏👍спасибо!
А как frozen влияет на изменяемые объекты? Списки, например, можно изменять? Добавлять в список новые элементы, или удалять их?
да, нельзя, по сути, менять значение самого атрибута, но если он ссылается на изменяемый объект, то сам этот объект можно спокойно менять!
Привет, спасибо за подробные объяснения! Добавь, пожалуйста, как использовать датаксласс с dataframe)
Тема практического применения не раскрыта. Показаны все методы и способы но не обьяснено когда есть смысл использовать эти датаклассы и чем они лучше обмена данными через простые словари и обычные классы.
Спасибо. Но проще и понятнее код такое не делает (как по мне).
ох уж этот синтаксический сахар в питоне
Спасибо за уроки.Правда, у меня не получилось применить параметр slots. @dataclass(slots=True). Хотя у меня версия Python 3.8 Так тоже не получилось:
@dataclass
class SomeClass:
__slots__ = ('atr', )
Просто, неплохо бы использовать slots в dataclass