#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
Сергей, спасибо, что продолжаете расширять актуальной информацией, ваш и без того отличный курс.
По мере необходимости смотрю этот канал - по мне лучшая подача материала
топовый преподаватель. просто создан для этого! спасибо!
Боже спасибо вам огромное! Вы сделали действительно прекрасный плейлист, который, я уверен, будет полезен многим даже через года. Действительно раньше думал что ООП это что то сложное и при его изучении чуть ли не слезы шли - думал даже, ну его, функциональное программирование мое все. А у тебя с удовольствием смотрю все, повторяю, теперь от классов не оторвать! Очень понятные объяснения. Сто процентов буду рекомендовать именно этот плейлист людям при изучении ООП.
Спасибо, что оживили плейлист по ООП
Спасибо большое. Как всегда понятно, интересно и познавательно. Попробуем такую возможность
Ваш курс - это лучшее что вообще может быть при изучении ООП! Спасибо вам большое! И то, что дополняете новыми темами - это бесценно!)
Лайк не глядя. Наконец-то до датаклассов добрались, спасибо, Сергей!
Как всегда, гениально!
Сергей, вы нереально круты! Спасибо большое за детальное объяснение, всё понятно, без воды. Подпишусь на канал
Сергей, спасибо за отличные видео. Давно Вас смотрю - это самое лучшее что есть про Python
Спасибо. Опасные эти изменяемые типы.
Класс Сын
Вижу новый ролик сразу ставлю лайк
Спасибо за новую информацию)
Как всегда лайк и спасибо за труды твои.
Отличное и полезное видео! Ждем продолжения!
Наконец-то датаклассы. Спасибо!
Просто шикарно. Спасибо Сергей Балакирев
Спасибо за ваш труд! Давно вас смотрю.
Супер Сергей очень полезная тема!!!
Спасибо за ваши уроки.
Спасибо большое!
Спасибо огромное за новую информацию!
Спасибо!)
Супер! Спасибо!
Спасибо большое
Спасибо! Уже пользовался))
Ох, с пудентиком вообще огонь
Greattttttttt!!!!!!!!!!!!!!
Сергей здравствуйте. Прохожу Ваши курсы на степике. Будут ли обновляться курсы, по мере выхода новых видео на ютуб?
Буду стараться ) Там только версия Python, вроде, старая используется, но посмотрим.
Спасибо! В следующих видео затронете pydantic и attrs?)
Здравствуйте! Огромное Спасибо за качественный обучающий материал ! Подскажите здесь не полны курс, а на Stepik полный ? Или отличие только в заданиях на степике ? Здесь в плей листе пишет, что два видео недоступно и скрыто.
Эти два видео скоро будут доступны (постепенно выходят), а на Stepik, да, плюс - это задачки из реальной практики (упрощенные)
Доброго времени суток!
Большое Вам спасибо за этот выпуск, очень актуальная информация 👍
Ещё хотелось бы узнать про декоратор @overload, который можно часто встретить читая чужой код.
👏👍
👍👍👍👍👍
Программист существо глубоко ленивое, НО творческое XDDD
👍👍👍👍👍👍👍👍👍
👍
Сергей, а можно реальный пример использования? С теорией все понятно, но непонятно зачем вообще нужен класс для хранения данных. Данные хранятся в БД. Например, работая с Flask и SQLAlchemy, мы просто наследуемся от класса db.Model и не пишем никакие инициализаторы. Это за нас сделает ORM.
Да это просто условное название такое. Это обычный класс, как и все, в который мы передаем какие-либо аргументы и сохраняем в локальных свойствах. Чтобы не писать рутину в __init__, можно воспользоваться этим декоратором dataclass
Спасибо за уроки. Можно ли параметры, измененные в ходе выполнения программы восстановить до значений по умолчанию одной командой?
Что то не совсем понял, что имеется в виду. Но такой вопрос лучше в ТГ-канал по Python.
@@selfedu_rus Вопрос возник еще с урока № 3 по ООП. Есть класс SetJulia, экземпляр класса sj. Атрибуты могут принимать другие значения в результате выполнения программы. Перед новым циклом надо привести значения в первоначальные, делаю так: sj.a1 = SetJulia.a1 или вот так:
if sj.a1 != SetJulia.a1:
del sj.a1
для каждого(!):
Есть еще один нюанс (наверное несущественный): если значения совпали, то можно ли как-то узнать, что значения экземпляра атрибута взято из класса, или получились в результате выполнения программы и просто совпали со значением по умолчанию. Спасибо!
А разве нельзя было вместо field написать так:
dims: list = list()
Мне кажется так для каждого нового объекта ThingData, dims ссылался бы на свой персональный список. Или я ошибаюсь?
Возникнет исключение ValueError. Если такой конструкцией воспользоваться при стандартном определении класса, это тоже ни на что не повлияет.
Мне кажется, именованные кортежи гораздо лучше использовать, чем датаклассы.
В ряде случаев да, удобнее. Но дата классы - это все же классы и все плюсы, отсюда вытекающие, связанные с ООП.
Датаклассы - квинтэссенция антиинкапсуляции🥴 имхо… что-то вроде глобальной переменной для клиентского кода. Поправьте меня пожста. В питоне новичок
What if we need not empty list as default?
об этом дальше
16:25 а как на счёт вместо [] просто вызвать list()?
вы что через нос говорите?
если передать один и то же список, то экземпляры изначально id(t1.dimm) == id(t2.dimm) -> True
Большое спасибо за ролик!