[ Timeline ] 00:00 План видео 00:45 Что такое ООП? 04:00 Классы и объекты 06:40 Принципы ООП 06:55 Принципы ООП. Абстракция. 08:00 Принципы ООП. Инкапсуляция. 08:30 Принципы ООП. Наследование. 10:25 Принципы ООП. Полиморфизм. 12:40 Атрибуты класса 14:20 Конструктор и инициализатор. Метод __init__(). 16:00 Поля (свойства) класса. 17:05 Служебное слово self 18:30 Методы 23:00 Уровни доступа: Public, Protected, Private. 27:05 ПРАКТИКА 27:10 Классовая структура 28:40 Класс Human 42:10 Класс House 47:20 Класс SmallHouse 50:35 Тесты
у меня при вызове house = House(100, 15_000) выдаёт ошибку: TypeError: House() takes no arguments и ещё выдаёт in __init__ super().__init__(SmallHouse.default_area, price) TypeError: object.__init__() takes exactly one argument (the instance to initialize)
Не много не так,конструктор класса нужен для того чтоб осуществить инкапсуляцию.То есть передать свойства,сразу при создания объекта,чтоб из этот объекта не вызывать лишние методы,это не много за путано,но в дальнейшим станет ясно,его всегда объясняют поверхностно ,чтоб особо не запутывать.
Спасибо. Теория доступно изложена. Практика понятно. Голос и дикция отлично. Монтаж не требует изменений. Единственное, не забывайте , что многие будут смотреть на мобильных устройствах и мелкие буквы кода, на четверть экрана, не видно.
Стоит уточнить что ООП сменило процедурное программирование только в разработке прикладных программ (десктопные программы, игры, любое ПО с цифровым пользовательским интерфейсом), но для разработки встроенных программ (микроконтроллеры, драйвера, системное программирование) неизменно используется функциональное программирование.
Да мне кажется все отлично,просто надо было разделить видео на две части и все .Учитывая что канал больше на Qa аудиторию,подробное разжеживание самое то
У вас талант объяснять ООП. Сколько видео и книг есть на эту тему, но обычно обучающие или излагают материал скучно как бухгалтеры или утопают в деталях или наоборот уносятся далеко от сути. Вам удается соблюсти идеальный баланс. Браво.
@@programmingqabysmartiqa6510 Кхе, ну и вопросик) я в этом не спец, и на счёт монтажа ничем помочь не могу. Просто в целом впечатление от видео такое, будто бы смотришь шаблонное обучающее видео которые делают в университете и т.п. В целом если бы вы преподавали в университете, и за вами было закреплено, условно человек 15 то вы были бы наверное отличным педагогом, но для широкой аудитории ютуба у вас слишком много теории. Хотел закрыть в первые минуты, но досмотрел и не пожалел, но немногие, как мне кажется, досмотрят. Но не принимайте мои слова слишком серьезно, возможно я сильно ошибаюсь, как уже говорил я не спец) Так же, слишком официально себя ведёте. Нужно побольше креатива в видео и коммуникации с аудиторией, имхо. Вы немного напоминаете его: th-cam.com/users/selfedu_rus/videos и его сайт: proproprogs.ru/index.php
Дякую за чудову лекцію. Кажуть, щоб здобути досвіду в ООП, треба попрацювати з ООП мінімум 1 рік на практиці, щоб зрозуміти що воно таке і як працює. Це правда чи ви вважеєте інакше?
Если даже не делать упор именно на ООП, а просто работать (писать код) в среднестатистической компании, то за пару месяцев можно отлично прочувствовать ООП. Говорю по личном опыту)
@@programmingqabysmartiqa6510 Дякую за відповідь. А як ви взагалі оцінюєте шанси новачків в програмуванні? Можна освоїти програмуванні, якщо влаштуватися на роботу без досвіду роботи закінчивши онлайн курс і маючи базові знання?
@@Skripnyk Базу вполне можно получить, изучая программирование и практикуясь самостоятельно / на курсах - возможностей действительно очень много. Некоторые онлайн платформы после курса еще и с трудоустройством помогают.
Абстракция - это не принцип ООП, это принципиальный подход к разработке, используемый в ООП, который описывает по каким критериям реализовывать объекты. Наследование - это принцип, который характеризует способность дочерних классов получать свойства и методы родительского (в редких случаях, родительских) классов. Инкапсуляция - это принцип, который описывает что данные объекта могут быть изменены только методами самого объекта. Полиморфизм - это принцип, который описывает способность функций работать с данными разных типов. Полиморфизм ни как не зависит от родительских классов. Переопределение методов в дочерних классов вытекает из полиморфизма, но не описывает его. Уже который человек допускает грубейшие ошибки в трактовке принципов ООП. Откуда вы взяли эти определения? 5 лет назад всё было нормально, а теперь всё скатилось до самоволки. Есть чёткое описание принципов ООП, которое сформировано ещё в бородатые времена и с тех пор они ни в коем случае не менялись.
У Вас метод final_price класса House напрямую обращается к защищенному атрибуту self._price. Мне кажется лучше так не делать а пользоваться геттером для этого атрибута. Или такое обращение к защищенному атрибуту вполне допустимо?
Добрый день!) Метод final_price() и атрибут _price принадлежат одному классу - House. Атрибут _price является защищенным по отношению к тем объектам, которые могут захотеть использовать его ВНЕ класса House. Внутри же своего класса - мы можем (и более того - должны) использовать его как хотим.
@@programmingqabysmartiqa6510 Великолепная подача материала. Нет "воды" всё доступно и понятно , но создание небольшого проекта и применение ООП на практике было бы вообще прекрасно . С уважением Сергей.
Здравствуйте. Хочу понять такие понятия, как замыкания, миксины, перегрузка операторов, геттеры и сеттеры, MRO. Есть ли что - то из этого в вашем видео?
Вот чего вы всё теориями сыпите? Вы не можете на практике визуально объяснять? Создай тупо кубик и в коде поменяй его размер, перемести его. Покажи, что вот тут ты поменяла и объект поменял либо размер, либо положение. Что это за примеры, по которым ни фига не понятно, что от чего зависит и что на что влияет.
[ Timeline ]
00:00 План видео
00:45 Что такое ООП?
04:00 Классы и объекты
06:40 Принципы ООП
06:55 Принципы ООП. Абстракция.
08:00 Принципы ООП. Инкапсуляция.
08:30 Принципы ООП. Наследование.
10:25 Принципы ООП. Полиморфизм.
12:40 Атрибуты класса
14:20 Конструктор и инициализатор. Метод __init__().
16:00 Поля (свойства) класса.
17:05 Служебное слово self
18:30 Методы
23:00 Уровни доступа: Public, Protected, Private.
27:05 ПРАКТИКА
27:10 Классовая структура
28:40 Класс Human
42:10 Класс House
47:20 Класс SmallHouse
50:35 Тесты
Вот наткнулся чисто случайно. И реально обьяснили и понял как работать с класами. Большое спасибо за хорошо подготовленный материал.
можно я буду варить борищ а ты будешь программировать?
Я бы сократил теоретическую часть и добавил еще пару задачек. Но в целом - огонь!!!
Спасибо вам огромное, очень познавательное было видео.Все очень хорошо обьяснили.
Очень информативно и круто, спасибо !
Сделайте пожалуйста видео о паттернах проектирования на Python.
Ну наконец-то! спасибо)
у меня при вызове house = House(100, 15_000) выдаёт ошибку: TypeError: House() takes no arguments
и ещё выдаёт
in __init__
super().__init__(SmallHouse.default_area, price)
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
Спасибо тебе, милый голос за урок ) Я наконец-то смог это понять, все отлично структурировано и дополнено прекрасным голосом с отличной дикцией.
Какой приятный голос) так бы слушал и слушал целый день...
Какое шикарное видео! Нет слов одни эмоции! Спасибо большое
Не много не так,конструктор класса нужен для того чтоб осуществить инкапсуляцию.То есть передать свойства,сразу при создания объекта,чтоб из этот объекта не вызывать лишние методы,это не много за путано,но в дальнейшим станет ясно,его всегда объясняют поверхностно ,чтоб особо не запутывать.
Спасибо.
Теория доступно изложена.
Практика понятно.
Голос и дикция отлично.
Монтаж не требует изменений.
Единственное, не забывайте , что многие будут смотреть на мобильных устройствах и мелкие буквы кода, на четверть экрана, не видно.
Кстати да, насчет мобильных - спасибо, что подсказали!
Коммент в точку!
ZER GUT! Всё изложено понятно и доходчиво! У девушки приятный голос и грамотная дикция, что в данном случае очень важно !!!
Стоит уточнить что ООП сменило процедурное программирование только в разработке прикладных программ (десктопные программы, игры, любое ПО с цифровым пользовательским интерфейсом), но для разработки встроенных программ (микроконтроллеры, драйвера, системное программирование) неизменно используется функциональное программирование.
Да мне кажется все отлично,просто надо было разделить видео на две части и все .Учитывая что канал больше на Qa аудиторию,подробное разжеживание самое то
Что у вас за шрифт в PyCharm установлен? Видно, что он не стандартный.
Ого, доходчиво... Офигел от того, что голос - женский
Спасибо. Это первое видео в котором я действительно понял как классы взаимодействуют друг с другом!
крутой урок
как в институт вернулся к нудной училке - эпсилон в степени 1 будет всегда равно самому себе блаааа
спасибо Вам за проделанную качественно работу. Отличный пример!!!
Хороший урок, особенно практическая часть. Рад что наткнулся на него
У вас талант объяснять ООП. Сколько видео и книг есть на эту тему, но обычно обучающие или излагают материал скучно как бухгалтеры или утопают в деталях или наоборот уносятся далеко от сути. Вам удается соблюсти идеальный баланс. Браво.
спасибо, долго ждал)
Видео супер! Огромное спасибо за такие понятные объяснения! Всё очень доступно!
+
Спасибо вам !!!
Очень классное и доходчивое объяснение. Спасибо вам за это видео!
Спасибо большое! Единственное видео, которое помогло понять тему.
Спасибо, за подробное описание!
Благодарю!
спасибо вам) крутой урок)
Отличное видео,все четко и понятно
Супер урок! Так держать,
Светлую тему для программистов нужно признать незаконной.
А так всё хорошо объяснено.
А можно ещё биографию автора((
ахренеть. прошёл год и у меня никаких результатов. ладно, вернусь сюда ещё через год наверное...
Супер урок! Спасибо!
Молодец девушка!. И голос такой приятный. Добротное изложение. Спасибо!
Нету такого слова, как нету
Очень хорошо. Прям вот последовательно, спокойно и упорядоченно. Спасибо!
Спасибо! Понятно объяснено!
Наверное лучшая расшифровка всей темы, что есть на данный момент как по мне, вы умница! Так держать
Спасибо!
Очень хорошо, четко, последовательно, понятно! Спасибо.
Спасибо за урок. Все очень доходчиво и легко воспринимается.
И правда, для улучшения контента нужно поменьше теории и (желательно) улучшить монтаж видео.
Добрый день! Спасибо за отзыв! Подскажите пожалуйста, в какую сторону Вы бы посоветовали двигаться в плане улучшения качества монтажа?
@@programmingqabysmartiqa6510 Кхе, ну и вопросик) я в этом не спец, и на счёт монтажа ничем помочь не могу. Просто в целом впечатление от видео такое, будто бы смотришь шаблонное обучающее видео которые делают в университете и т.п. В целом если бы вы преподавали в университете, и за вами было закреплено, условно человек 15 то вы были бы наверное отличным педагогом, но для широкой аудитории ютуба у вас слишком много теории. Хотел закрыть в первые минуты, но досмотрел и не пожалел, но немногие, как мне кажется, досмотрят. Но не принимайте мои слова слишком серьезно, возможно я сильно ошибаюсь, как уже говорил я не спец) Так же, слишком официально себя ведёте. Нужно побольше креатива в видео и коммуникации с аудиторией, имхо.
Вы немного напоминаете его: th-cam.com/users/selfedu_rus/videos и его сайт: proproprogs.ru/index.php
@@Bowson33 круто, спасибо за такой подробный отзыв, было очень интересно узнать мнение со стороны!
@@programmingqabysmartiqa6510 не слушайте его. Спасибо Вам за урок. Мне понравилось. Подписался и жду видео по питону
Отличная работа. Всё супер. Спасибо.
Здравствуйте, вы просто умница, все по делу, спасибо
Великолепное объяснение! Жаль, что не нашел раньше это видео
Дякую за чудову лекцію. Кажуть, щоб здобути досвіду в ООП, треба попрацювати з ООП мінімум 1 рік на практиці, щоб зрозуміти що воно таке і як працює. Це правда чи ви вважеєте інакше?
Если даже не делать упор именно на ООП, а просто работать (писать код) в среднестатистической компании, то за пару месяцев можно отлично прочувствовать ООП. Говорю по личном опыту)
@@programmingqabysmartiqa6510 Дякую за відповідь. А як ви взагалі оцінюєте шанси новачків в програмуванні? Можна освоїти програмуванні, якщо влаштуватися на роботу без досвіду роботи закінчивши онлайн курс і маючи базові знання?
@@Skripnyk Базу вполне можно получить, изучая программирование и практикуясь самостоятельно / на курсах - возможностей действительно очень много. Некоторые онлайн платформы после курса еще и с трудоустройством помогают.
@@programmingqabysmartiqa6510 Дякую. Було б чудово, якби ви продовжили знімати свої уроки і викладати їх, цікаво дивитися.
@@Skripnyk Стараемся записывать, когда время позволяет)
Абстракция - это не принцип ООП, это принципиальный подход к разработке, используемый в ООП, который описывает по каким критериям реализовывать объекты.
Наследование - это принцип, который характеризует способность дочерних классов получать свойства и методы родительского (в редких случаях, родительских) классов.
Инкапсуляция - это принцип, который описывает что данные объекта могут быть изменены только методами самого объекта.
Полиморфизм - это принцип, который описывает способность функций работать с данными разных типов. Полиморфизм ни как не зависит от родительских классов. Переопределение методов в дочерних классов вытекает из полиморфизма, но не описывает его.
Уже который человек допускает грубейшие ошибки в трактовке принципов ООП. Откуда вы взяли эти определения? 5 лет назад всё было нормально, а теперь всё скатилось до самоволки. Есть чёткое описание принципов ООП, которое сформировано ещё в бородатые времена и с тех пор они ни в коем случае не менялись.
Здравствуйте. Спасибо вам за такое подробное описание. Было очень интересно.
прекрасная работа! спасибо вам большое!
У Вас метод final_price класса House напрямую обращается к защищенному атрибуту self._price. Мне кажется лучше так не делать а пользоваться геттером для этого атрибута. Или такое обращение к защищенному атрибуту вполне допустимо?
Добрый день!) Метод final_price() и атрибут _price принадлежат одному классу - House. Атрибут _price является защищенным по отношению к тем объектам, которые могут захотеть использовать его ВНЕ класса House. Внутри же своего класса - мы можем (и более того - должны) использовать его как хотим.
Очень классно объяснено, спасибо большое!
потрясающее доходчиво
Очень классно. Но мало .СПАСИБО
Спасибо за отклик!) А чего именно мало? Задач?
@@programmingqabysmartiqa6510 Великолепная подача материала. Нет "воды" всё доступно и понятно , но создание небольшого проекта и применение ООП на практике было бы вообще прекрасно . С уважением Сергей.
Спасибо огромное🙂
Ооочень доходчиво
Здравствуйте. Хочу понять такие понятия, как замыкания, миксины, перегрузка операторов, геттеры и сеттеры, MRO. Есть ли что - то из этого в вашем видео?
Добрый день! Пока еще не рассматривали данные темы подробно. Но планируем.
@@programmingqabysmartiqa6510 А в каком году планируете выпустить?
@@АлександрК-ш Скорее всего это будет осенью
Скидка 3%))) Вы не из Беларуси?)))
Вот чего вы всё теориями сыпите? Вы не можете на практике визуально объяснять? Создай тупо кубик и в коде поменяй его размер, перемести его. Покажи, что вот тут ты поменяла и объект поменял либо размер, либо положение. Что это за примеры, по которым ни фига не понятно, что от чего зависит и что на что влияет.