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

Поделиться
HTML-код
  • Опубликовано: 9 фев 2023
  • Курс по Python ООП: stepik.org/a/116336
    Объявление классов данных (Data Classes) через декоратор dataclass. Использование параметров со значениями по умолчанию. Функция field.
    Плейлист по Python ООП: • Объектно-ориентированн...
    Инфо-сайт: proproprogs.ru/python_oop
    Telegram-канал: t.me/python_selfedu

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

  • @sladge17
    @sladge17 Год назад +24

    Сергей, спасибо, что продолжаете расширять актуальной информацией, ваш и без того отличный курс.

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

    По мере необходимости смотрю этот канал - по мне лучшая подача материала

  • @Nonstop4ik
    @Nonstop4ik 3 месяца назад +5

    топовый преподаватель. просто создан для этого! спасибо!

  • @bern9013
    @bern9013 5 месяцев назад +1

    Боже спасибо вам огромное! Вы сделали действительно прекрасный плейлист, который, я уверен, будет полезен многим даже через года. Действительно раньше думал что ООП это что то сложное и при его изучении чуть ли не слезы шли - думал даже, ну его, функциональное программирование мое все. А у тебя с удовольствием смотрю все, повторяю, теперь от классов не оторвать! Очень понятные объяснения. Сто процентов буду рекомендовать именно этот плейлист людям при изучении ООП.

  • @IvaNFallout
    @IvaNFallout Год назад +13

    Спасибо, что оживили плейлист по ООП

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

    Спасибо большое. Как всегда понятно, интересно и познавательно. Попробуем такую возможность

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

    Ваш курс - это лучшее что вообще может быть при изучении ООП! Спасибо вам большое! И то, что дополняете новыми темами - это бесценно!)

  • @igorb.4917
    @igorb.4917 Год назад +9

    Лайк не глядя. Наконец-то до датаклассов добрались, спасибо, Сергей!

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n Год назад +7

    Как всегда, гениально!

  • @ekaterinazakusova
    @ekaterinazakusova 7 месяцев назад +1

    Сергей, вы нереально круты! Спасибо большое за детальное объяснение, всё понятно, без воды. Подпишусь на канал

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

    Сергей, спасибо за отличные видео. Давно Вас смотрю - это самое лучшее что есть про Python

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

    Спасибо. Опасные эти изменяемые типы.

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

    Класс Сын

  • @user-yk2zc8vy6u
    @user-yk2zc8vy6u Год назад +2

    Вижу новый ролик сразу ставлю лайк
    Спасибо за новую информацию)

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

    Как всегда лайк и спасибо за труды твои.

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

    Отличное и полезное видео! Ждем продолжения!

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

    Наконец-то датаклассы. Спасибо!

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

    Просто шикарно. Спасибо Сергей Балакирев

  • @user-vc2nf9cv8b
    @user-vc2nf9cv8b Год назад +2

    Спасибо за ваш труд! Давно вас смотрю.

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

    Супер Сергей очень полезная тема!!!

  • @vika-sole
    @vika-sole Год назад +2

    Спасибо за ваши уроки.

  • @vitali1959
    @vitali1959 Год назад +3

    Спасибо большое!

  • @RozaNevroza
    @RozaNevroza 10 месяцев назад +1

    Спасибо огромное за новую информацию!

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

    Спасибо!)

  • @user-km7hx9je2g
    @user-km7hx9je2g Год назад +2

    Супер! Спасибо!

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

    Спасибо большое

  • @user-qn6pq1dk5h
    @user-qn6pq1dk5h Год назад +2

    Спасибо! Уже пользовался))

  • @user-pk6nr8yv1b
    @user-pk6nr8yv1b Год назад +2

    Ох, с пудентиком вообще огонь

  • @Developer_python_
    @Developer_python_ Год назад +1

    Greattttttttt!!!!!!!!!!!!!!

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

    Сергей здравствуйте. Прохожу Ваши курсы на степике. Будут ли обновляться курсы, по мере выхода новых видео на ютуб?

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

      Буду стараться ) Там только версия Python, вроде, старая используется, но посмотрим.

  • @Alexey-gp7vc
    @Alexey-gp7vc Год назад +3

    Спасибо! В следующих видео затронете pydantic и attrs?)

  • @sagiems
    @sagiems Год назад +3

    Здравствуйте! Огромное Спасибо за качественный обучающий материал ! Подскажите здесь не полны курс, а на Stepik полный ? Или отличие только в заданиях на степике ? Здесь в плей листе пишет, что два видео недоступно и скрыто.

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

      Эти два видео скоро будут доступны (постепенно выходят), а на Stepik, да, плюс - это задачки из реальной практики (упрощенные)

  • @Pan-Ilya
    @Pan-Ilya Год назад +3

    Доброго времени суток!
    Большое Вам спасибо за этот выпуск, очень актуальная информация 👍
    Ещё хотелось бы узнать про декоратор @overload, который можно часто встретить читая чужой код.

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

    👏👍

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

    👍👍👍👍👍

  • @alenwar5123
    @alenwar5123 8 месяцев назад +1

    Программист существо глубоко ленивое, НО творческое XDDD

  • @user-uf3qh3fr7d
    @user-uf3qh3fr7d Год назад +2

    👍👍👍👍👍👍👍👍👍

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

    👍

  • @MikleShaman
    @MikleShaman Год назад +3

    Сергей, а можно реальный пример использования? С теорией все понятно, но непонятно зачем вообще нужен класс для хранения данных. Данные хранятся в БД. Например, работая с Flask и SQLAlchemy, мы просто наследуемся от класса db.Model и не пишем никакие инициализаторы. Это за нас сделает ORM.

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

      Да это просто условное название такое. Это обычный класс, как и все, в который мы передаем какие-либо аргументы и сохраняем в локальных свойствах. Чтобы не писать рутину в __init__, можно воспользоваться этим декоратором dataclass

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

    Спасибо за уроки. Можно ли параметры, измененные в ходе выполнения программы восстановить до значений по умолчанию одной командой?

    • @selfedu_rus
      @selfedu_rus  7 месяцев назад

      Что то не совсем понял, что имеется в виду. Но такой вопрос лучше в ТГ-канал по Python.

    • @user-pr7gy3bq7n
      @user-pr7gy3bq7n 7 месяцев назад

      @@selfedu_rus Вопрос возник еще с урока № 3 по ООП. Есть класс SetJulia, экземпляр класса sj. Атрибуты могут принимать другие значения в результате выполнения программы. Перед новым циклом надо привести значения в первоначальные, делаю так: sj.a1 = SetJulia.a1 или вот так:
      if sj.a1 != SetJulia.a1:
      del sj.a1
      для каждого(!):
      Есть еще один нюанс (наверное несущественный): если значения совпали, то можно ли как-то узнать, что значения экземпляра атрибута взято из класса, или получились в результате выполнения программы и просто совпали со значением по умолчанию. Спасибо!

  • @user-cm1ri1sn2u
    @user-cm1ri1sn2u Год назад +2

    А разве нельзя было вместо field написать так:
    dims: list = list()
    Мне кажется так для каждого нового объекта ThingData, dims ссылался бы на свой персональный список. Или я ошибаюсь?

    • @BritScientist
      @BritScientist Год назад +1

      Возникнет исключение ValueError. Если такой конструкцией воспользоваться при стандартном определении класса, это тоже ни на что не повлияет.

  • @user-hp7pc3lv3v
    @user-hp7pc3lv3v Год назад +2

    Мне кажется, именованные кортежи гораздо лучше использовать, чем датаклассы.

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

      В ряде случаев да, удобнее. Но дата классы - это все же классы и все плюсы, отсюда вытекающие, связанные с ООП.

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

    Датаклассы - квинтэссенция антиинкапсуляции🥴 имхо… что-то вроде глобальной переменной для клиентского кода. Поправьте меня пожста. В питоне новичок

  • @armanella3612
    @armanella3612 10 месяцев назад +1

    What if we need not empty list as default?

    • @selfedu_rus
      @selfedu_rus  10 месяцев назад +1

      об этом дальше

  • @youtubeyoutube6205
    @youtubeyoutube6205 Год назад +3

    16:25 а как на счёт вместо [] просто вызвать list()?

  • @user-jn3vm1rz4z
    @user-jn3vm1rz4z 6 месяцев назад +2

    вы что через нос говорите?

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

    если передать один и то же список, то экземпляры изначально id(t1.dimm) == id(t2.dimm) -> True

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

    Большое спасибо за ролик!