#20. Наследование в объектно-ориентированном программировании | ООП Python

  Рет қаралды 41,786

selfedu

selfedu

Күн бұрын

Курс по Python ООП: stepik.org/a/116336
Как реализуется механизм наследования в языке Python. Примеры наследования классов, зачем это нужно, переопределение (overriding) методов и свойств.
Инфо-сайт: proproprogs.ru/python_oop
Telegram-канал: t.me/python_selfedu

Пікірлер: 43
@MarchelloCSKAMoscow
@MarchelloCSKAMoscow 2 жыл бұрын
Оффтоп: Оказывется на степике теперь за прохождение курса Добрый добрый Пайтон выдаётся сертификат!
@Normankovalsky
@Normankovalsky Жыл бұрын
вот это я понимаю человечище. На все ответил ,все вопросы разжевал. Спасибо тебе огромное. Сложное так объяснить по простому, у вас талант!
@onemasterlomaster1829
@onemasterlomaster1829 2 жыл бұрын
уроки ООП Python просто супер
@beribanyu
@beribanyu 2 жыл бұрын
Сергей, спасибо огромное. Продолжаем грызть гранит науки. По этому ролику вроде все хорошо зашло. Да и вообще стал проходить не по одному уроку, а по два в день. Так как уже лучше все усваивается) Еще раз спасибо вам!
@zakirovio
@zakirovio Жыл бұрын
здорово! пока что лучшее объяснение механизма наследования среди всех что я читал)
@user-cb1kz3mv7j
@user-cb1kz3mv7j 4 ай бұрын
Отличная подача, все понятно, разжевано до мелочей. Если кто-то говорит про сложность примеров в уроках, тот этот кто-то просто лениться с учебой. Или не умеет учиться. Урок надо не только смотреть, но и конспектировать своими словами в тетрадочке важные моменты. А потом просмотреть еще раз, но уже с открытым пайчармом, чтобы все самому попробовать. И напоследок - поиграться с кодом самому. Попробовать поэкспериментировать. Придумать свои классы и свою задачку, чтобы опробовать знание в деле. Можно взять пример из предыдущего урока и реализовать его, используя то что изучил в этом уроке. И т.д.. У меня каждый ролик отнимает не 6-15 минут, а 1-3ч занятий. Порой на 2 занятия 1 урок растягиваю или даже на 3. Простым просмотром видосиков ничему не научишься. Даже если все понимаешь. Ну и забудется быстро все, без практики.
@user-wn4nj6lq9q
@user-wn4nj6lq9q 2 жыл бұрын
Ну тут надо однозначно поставить лайк)
@Dayplaylist
@Dayplaylist 2 жыл бұрын
Сергей, наконец то я дошел до наследования, как обещал даю обратную связь😌 сначало по ролику с наследованием это хороший обучающий ролик в котором будет все понятно новичкам👍😌 по поводу старого набора роликов про ООП и нового можно сразу сказать, что новый лучше так как вы стали ещё более подробно обьяснять как и что происходит особенно на картинках со стрелочками , огромное спасибо за проделанную работу, работа точно проделана не зря мне данный материал точно помог. Так же если говорить о каких либо недостатках то я вижу, что от первого до 20го ролика интерес аудитории падает возможно людям тяжеловато воспринимать большие конструкции из кода (лично мне как с человеку с опытом понятно, то о чем вы говорите особенно в новых роликах ) но новичков это скорее всего отпугивает и тут наверное однозначного решения нет (типа если это сложно то и нечего делать в программировании) но возможно было бы полезнее после вводного урока сначала показать объяснить базовые пункты ООП инкапсуляция, наследование и полиморфизм что бы новички хотяб базу поняли а потом отвалились 😁ну и дальше уже по методам кому интересно😌не подумайте что я придираюсь просто хочу с вами честно поделиться своим мнением, я очень уважаю то, что вы делаете и ещё раз ОГРОМНОЕ ВАМ СПАСИБО 👍😌
@Dayplaylist
@Dayplaylist 2 жыл бұрын
Хотя понятно почему ролики именно так расположенные, чтобы дать знание человеку для объяснения будущих тем , эх просто печально, что на наследовании просмотров настолько меньше, а это я ещё до полиморфизма не дошел(((
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Спасибо! Спад аудитории происходит во всех моих курсах. Так уж устроен наш образовательный мир ))
@Dayplaylist
@Dayplaylist 2 жыл бұрын
@@selfedu_rus по-моем вы в одном из роликов говорили, что дорогу осилит идущий 😌 очень в тему , так и живём😁
@igorratnik2357
@igorratnik2357 Жыл бұрын
Какие новички? Вы о чем? Люди дошли до ООП, до наследования, они априори не новички, а как минимум уже хорошо должны понимать язык. Да конечно, если пройти базу типа списков, строк, if, for, и сразу прыгнуть сюда это будет треш. Ну и по честному первый курс Сергея он слишком поверхностен и короток, после него сразу в ООП идти бессмысленно. Нужно еще пару тройку курсов по основам пройти и на степике они есть. Хотя задачи по сложности самые трудные в курсах Сергея. ООП данный курс просто бомба!
@user-xi3uv5tn5y
@user-xi3uv5tn5y 2 жыл бұрын
отличное объяснение темы, все разложено и очень легко воспринимается!
@igorratnik2357
@igorratnik2357 Жыл бұрын
Большое спасибо! Ваш курс по ООП одно из лучших на степике, что есть по пайтону. Хотя есть и известные конкуренты. Но и вы и они не взаимоисключение, а дополнение. Спасибо!
@uladzislawchyrets
@uladzislawchyrets 2 жыл бұрын
Спасибо за эти прекрасные уроки
@pphan_
@pphan_ 6 ай бұрын
опа,наследование,уже 20 урок, спасибо огромное, все понял❤
@lexacactus-qf6if
@lexacactus-qf6if 6 ай бұрын
Спасибо большое, сэкономил полтора часа
@kotovasya87
@kotovasya87 2 жыл бұрын
Благодарю за урок.
@user-bw4xg8tb9r
@user-bw4xg8tb9r 2 жыл бұрын
Шикарно, спасибо! Сначала даже не хотел смотреть первый урок раздела "Наследования". Думал, что ничего нового не услышу. Но нюансы настолько интересно освещены, что не пожалел ни об одной просмотренной минуте))
@non5309
@non5309 2 жыл бұрын
Отлично изложено. Автору поклон за труды! Еще бы задачи закрепляющие и куда-нибудь на степик курс - получился бы лучший курс по ООП на русском языке за который можно и денег отдать.
@Nick-py7iy
@Nick-py7iy Жыл бұрын
Спасибо, хорошо объяснено!
@andredru4278
@andredru4278 4 ай бұрын
Спасибо. Все понятно.
@abdulloakramov7941
@abdulloakramov7941 11 ай бұрын
спасибо за урок
@ISAWER1
@ISAWER1 Жыл бұрын
лайк и и комментарий в поддержку канала.
@jamjam3337
@jamjam3337 Жыл бұрын
Спасибо!
@gayratsaidakhmedov5451
@gayratsaidakhmedov5451 5 ай бұрын
спасибо
@user-cb1kz3mv7j
@user-cb1kz3mv7j 4 ай бұрын
Кстати, такой нюанс: в примере, где self.draw() находиться в родительском классеbe (время 8:53), у меня выдает ошибку: "TypeError: Line.draw() missing 1 required positionalument: 'self'" И чтобы сработало так, как на видео, мне приходится прямо указывать аргумент для self.draw(). Это не критично для учебы. Возможно, у меня просто более новая версия python P.s. Я прекрасно понял посыл автора, что нельзя в родительском классе делать вызов атрибута из дочернего класса. Но это не отменяет того, что для учебы стоит повторить весь код урока самостоятельно.
@user-qj6tk5fw9p
@user-qj6tk5fw9p Жыл бұрын
Очередное спасибо вам! для зрителей канала, открою лайфХак как вызывать в методах базового класса поля и метолы классов наследников не опасаясь что программа сломается, делать проверку if isinstance(self, (Line, Rect)): self.draw(). ну это шутка конечно)
@ibrahimoglu
@ibrahimoglu 2 жыл бұрын
👍👍
@user-br7hg4by2j
@user-br7hg4by2j 2 жыл бұрын
Спасибо за очередной урок! Кружочек со стрелочкой вниз напротив класса Geom похоже означает, что класс Geom наследуется другими классами. Странно, для переопределяемых в потомках методов среда в базовом классе показывает стрелочку вниз напротив метода, а для переменных (переопределяемых в потомках) почему-то нет.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Стрелочки показываются только для переопределяемых атрибутов класса. Внутри экземпляров переопределений нет.
@user-br7hg4by2j
@user-br7hg4by2j 2 жыл бұрын
@@selfedu_rus Я имел в виду, что стрелочки показываются не для всех переопределяемых атрибутов класса, а только для методов.
@user-cm1ri1sn2u
@user-cm1ri1sn2u Жыл бұрын
1:20 Сергей, разве мы расширяем класс Geom классом Line? Мне кажется, что наоборот, мы расширяем класс Line классом Geom, ведь именно в Line появляются новые методы и свойства из Geom'а, а не наоборот
@selfedu_rus
@selfedu_rus Жыл бұрын
Ну а как можно расширить класс (Line), которого еще нет? ))
@user-cm1ri1sn2u
@user-cm1ri1sn2u Жыл бұрын
@@selfedu_rus хорошо, пойдём от обратного, чем расширился класс Geom? Свойства и методы дочерних классов ему недоступны, а у дочерних напротив, функционал шире, за счёт унаследованных методов и своих собственных.
@selfedu_rus
@selfedu_rus Жыл бұрын
@@user-cm1ri1sn2u я понимаю так, что есть исходный базовый класс Geom, мы хотим получить более широкий функционал, поэтому на его базе создаем дочерний с дополнительными новыми атрибутами
@johnmazepa
@johnmazepa Жыл бұрын
Вы забыли рассказать про синтаксис написания __init__() в дочерних классах, если часть аргументов принимается через __init__() родительского. Почему я разбухтелся? Потому, что в задачках к теме Вы об этом аспекте не забыли)))
@johnmazepa
@johnmazepa Жыл бұрын
class Animal: def __init__(self, name, age): self.name = name self.age = age class Cat(Animal): def __init__(self, name, age, color, weight): super().__init__(name, age) #без этой строчки не работает self.color = color self.weight = weight
@nazarkhort4362
@nazarkhort4362 2 жыл бұрын
Внимание спойлер! Смотрите о Diamond Problem и МRО в следующем занятии.
@user-xc9no9hd4i
@user-xc9no9hd4i 2 жыл бұрын
А разве у нас не создаются экземпляры L, R и G когда мы вызываем функцию set_cord?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
set_coords() создает локальные атрибуты x1, y1, x2, y2 внутри текущего объекта класса, больше ничего
@amvladimir3866
@amvladimir3866 Жыл бұрын
неработает
@amvladimir3866
@amvladimir3866 Жыл бұрын
class geom(): def __init__(self,name): #self.name=name self.name='deeoommmee' class line(): def draw(self): print('linija---') geom1=geom('') print(geom1.name) line1=line() line1.draw()
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 106 МЛН
Despicable Me Fart Blaster
00:51
_vector_
Рет қаралды 26 МЛН
Spot The Fake Animal For $10,000
00:40
MrBeast
Рет қаралды 159 МЛН
ПРОВЕРИЛ АРБУЗЫ #shorts
00:34
Паша Осадчий
Рет қаралды 6 МЛН
Зачем нужны указатели в C++?
8:14
Большие проблемы наследования в ООП
10:51
ТОП 5 Ошибок в написании функций Python
12:46
Принципы ООП. 2. Наследование
10:31
Sergey Nemchinskiy
Рет қаралды 99 М.
Looks realistic #tiktok
00:22
Анастасия Тарасова
Рет қаралды 106 МЛН