#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...

Комментарии • 22

  • @user-cb1kz3mv7j
    @user-cb1kz3mv7j Месяц назад +3

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

  • @user-it3yo1sn6i
    @user-it3yo1sn6i Год назад +10

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

  • @-lavale-
    @-lavale- 2 месяца назад +4

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

    • @user-cb1kz3mv7j
      @user-cb1kz3mv7j Месяц назад

      Код не усложняется, а упрощается. И читать его легче. Просто вы пока не выучили материал. Потом поймете.

  • @user-qh4zz2kg7r
    @user-qh4zz2kg7r Год назад +4

    Всем рекомендую данный канал

  • @idontknowidontknow6352
    @idontknowidontknow6352 Год назад +8

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

  • @eh9mjeh9mj
    @eh9mjeh9mj 3 месяца назад +2

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

  • @ickermaid1461
    @ickermaid1461 Год назад +5

    Буду завтракать и изучать, спасибо)

  • @user-hc8pk8mz7j
    @user-hc8pk8mz7j Год назад +3

    Отличный материал!

  • @jamjam3337
    @jamjam3337 Год назад +2

    👏👍спасибо!

  • @nikteshy9131
    @nikteshy9131 Год назад +2

    Огромный вам респект )))))))))) 😊😊

  • @user-qj6tk5fw9p
    @user-qj6tk5fw9p 9 месяцев назад +1

    Огромное вам спасибо!

  • @user-qn8zd2tq9v
    @user-qn8zd2tq9v Год назад +3

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

  • @BeSelblu
    @BeSelblu Год назад +4

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

  • @hearmyvoice5626
    @hearmyvoice5626 Год назад +2

    Бомба💣

  • @markruffalo293
    @markruffalo293 Год назад +6

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

    • @selfedu_rus
      @selfedu_rus  Год назад +2

      да, нельзя, по сути, менять значение самого атрибута, но если он ссылается на изменяемый объект, то сам этот объект можно спокойно менять!

  • @mr.senmax6185
    @mr.senmax6185 5 месяцев назад +2

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

  • @andredru4278
    @andredru4278 2 месяца назад +1

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

  • @timofeybelyakov7752
    @timofeybelyakov7752 9 месяцев назад +1

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

  • @user-uc7ng2tl8o
    @user-uc7ng2tl8o Год назад +1

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