Вот это да, а я думал это я глупый и ничего понять не могу) оказывается другие объяснения были не понятными) Вся картина в голове как паззл складывается) Автор гений!
@iliaplotnikov21672 жыл бұрын
Оставляю комментарий лишь бы ютуб поднял эти уроки повыше в выдаче, потому что идеально. Ведро лайков этому человеку! 👍
@konstantinpak24963 жыл бұрын
Первый урок был хорош и второй не глядя лайк ставлю! Очень понятно все объясняете, спасибо
@user-vl1ps8uw1o2 жыл бұрын
Да, я по тому-же принципу лайк поставил)
@user-th4uw9co3t2 жыл бұрын
гений. Лучшее объяснение, которое я видел. К черту хауди Хо и подобных
@luden67942 жыл бұрын
А кто такой хауди Хо?
@master-Dmitriy3 жыл бұрын
Благодарю всей душой, очень понятно и доходчиво. С первого раза всё зашло, хотя обычно приходится по несколько раз просматривать ролики других авторов, чтобы понять суть. После первого же просмотра подписка, лайк, и колокольчик все уведомления. Ты лучший!!! Продолжай своё дело, ты делаешь этот мир лучше.
@nameisSANS4 ай бұрын
Урок просто отличный! Спасибо за простое объяснение ТЕМ БОЛЕЕ с примерами!!
@iaroslavdavydiak64392 жыл бұрын
Спасибо что объясняете сложные вещи простым языком👍
@user-ld8dk5tt9r3 жыл бұрын
Братан от души. Очень годный контент. Единственный понятный урок на ютюбе.
@ruslanruslan3382 жыл бұрын
Очень полезное видео про ООП. Спасибо автору
@user-wl9gn6pk7d3 жыл бұрын
Да, понятные примеры и логичное понятное объяснение. Спасибо!
@juliaweinstein31333 жыл бұрын
Хочу выразить благодарность!!! Отличное видео! Всё понятно становится
@andreydr28612 жыл бұрын
Все лаконично и невероятно понятно. Спасибо за такое подробное объяснение. На других каналах многое непонятно
@yarstein122 жыл бұрын
Спасибо за труд! Прекрасный материал, продолжайте в том же духе, успехов вам во всём.
@user-pv3zw4ki9z2 жыл бұрын
Какой Вы все таки крутой чувак! Смотрю не из РФ с рекламой 👌 Спасибо огромное!!!
@olehpokotyliuk51842 жыл бұрын
Просто глобальный респект вам за вашу нелегкую работу.
@paran01k253 жыл бұрын
отличное объяснение! я думал мое понимание питона закончилось до просмотра этого видео, спасибо!
@msc_Noname2 жыл бұрын
Шикарные уроки! Спасибо!
@dimagorin43053 жыл бұрын
блин брат лучшее объяснение классов че и как, я только начал в это вникать и из 5 видео что я посмотрел твое лучшее!!
@amu_123452 жыл бұрын
Спасибо огромное за видео! Все по полочкам разложили!
@user-xv7sh6lp7o3 жыл бұрын
Огромное спасибо за такое подробное объяснение!
@mcolegon3 жыл бұрын
Одно из самых адекватных и понятных объяснений конструкций пайтона. Спасибо.
@user-vc1mq4zs3t2 жыл бұрын
Добрый день. Спасибо за отличный курс!
@nadyamoscow24613 жыл бұрын
Большое спасибо, отличное объяснение.
@favoritesmaily68032 жыл бұрын
Наконец то понял по ООП))лучший, спасибо)
@user-yp5jg7kx1m Жыл бұрын
большое спасибо за четкое и разборчивое объяснение
@howardklark44573 жыл бұрын
Спасибо! Хороший, понятный урок.
@etsyseotools-gardensoldier62602 жыл бұрын
прохожу курс на юдеми ФОФАнова, чтобы закрыть лекцию и перейти к следующей теме я уже 4 раза пересмотрел ООП и понял почти ничего! В этих 3-ёх уроках 1 раз и смог выполнить домашку фофанова. Пайтон Хаб Студия - респект тебе!!!!! просто супер. пиши курс и заливай на патреон и юдеми, если еще этого не сделал - БУдет успех. Если рассматривать тебя, как класс, то метод подачи твоих объектов на высоте!!)) спасибо!!!
@PythonHubStudio2 жыл бұрын
Класс!! Спасибо, очень приятно!
@marketplace_news5 ай бұрын
Отличная подача материала, автору спасибо!
@KiWi-oe8vg2 жыл бұрын
Благодарю вас за информацию, объясняете очень хорошо, даже я понял
@Mike-og4wc Жыл бұрын
Просто суперское объяснение материала, спасибо большое за видео. (like + subscription)
@Dmitry_Konstantinovich2 жыл бұрын
Спасибо! Доступно и понятно.
@taichillishow50932 ай бұрын
Нет Человека который способен объяснять лучше вас
@nikitabbrv59472 жыл бұрын
Спасибо, месяцев 5 назад практиковал питон, написал парсер, но классы юзать не приходилось. Вернулся - и очень хорошее объяснение темы. спс
@AlexCoder00711 ай бұрын
Отличное объяснение ООП ! Автор респект
@kizik852 жыл бұрын
Поддрерижаваю! Очень крутое объяснение! Спасибо!
@user-hx5il7xj3t Жыл бұрын
Спасибо! Отличное видео
@ashtonkutcherov39923 жыл бұрын
да ты реально нереально крут
@user-do1xf1jv2y2 жыл бұрын
Лучшее, что видел!
@vovastarenko38802 жыл бұрын
красавчик , все очень понятно и доступно.
@rimmagamer16702 жыл бұрын
Отличный урок! Великолепный талант автора доносить до слушателя материал. И без навязчивой музыки. Один недостаток - всё скомкано в один файл. Тут же показано наследование и тут же полиморфизм.
@tobesunset8202 жыл бұрын
Полностью согласен, тем более на интересном примере)
@user-mw7dz4fg7f Жыл бұрын
Ну Вы- Человечище! Спасибо!
@PythonHubStudio Жыл бұрын
Рад, что видео Вам помогло!
@symbol45723 жыл бұрын
Спасибо!
@ThevideOoLoadeR2 жыл бұрын
Буттон)) Но урок очень топовый, спасибо! Прям наглядненько так и без лишнего
@hithrv3 жыл бұрын
Крутотошка! Спасибо
@enjoyenjoy65272 жыл бұрын
Спасибо Вам Большое .
@user-rn4rt5mt3i Жыл бұрын
все очень круто и понятно, спасибо
@tanto_id2 жыл бұрын
Благодарю за урок
@serga8543 Жыл бұрын
спасибо за видео!
@pushkars96003 жыл бұрын
Ты просто бомба!
@yanabrigadir9 ай бұрын
спасибо автору за хорошее объяснение
@radhagovindadd59472 жыл бұрын
Спасибо очень хороший урок
@PythonHubStudio2 жыл бұрын
Ссылка на ПОЛНЫЙ курс ООП из ТРЕХ видео: kzfaq.info/sun/PLNi5HdK6QEmX9fxp3_IBFx1O5tiTmKlYm И созданием профессиональной программы в ООП стиле: kzfaq.info/sun/PLNi5HdK6QEmUIkR63RLqkECTCUwThQtcN
@maximkuzmin41032 жыл бұрын
ответьте, пожалуйста, на вопрос, копирую чужой комментарий: не могу понять последний пример, чтобы было написано 'А', мы наследуемся почему-то от 'B', но в 'B' же есть метод 'a', как он переходит на класс 'A', или если по другой логике, мы наследуемся от B там он метода не видит, а переходит сразу на 'А' , почему не на 'C'?
@iliaplotnikov21672 жыл бұрын
@@maximkuzmin4103 Дружище, мы не наследуемся от В. Глянь еще раз момент со строкой __mro__ - там мы получали порядок наследования, по какой очередности Python будет искать метод 'a' в наследовании. Написал же super(B, self) мы как бы просим у Python в списке __mro__ искать этот метод в СЛЕДУЮЩЕМ за 'B' классе - в данном случае это класс 'А'
@maximkuzmin41032 жыл бұрын
@@iliaplotnikov2167 спасибо большое за пояснение! пересмотрел момент сегодня и осознал
@user-jd5uz5xr9u2 жыл бұрын
Про выбор класса исполняемой команды в суппере. То есть оно там принцып лесенки? В зависимости от последовательности записаных классов? Если вначале напишем класс Z а потом ниже K и L то если я хочу класс Z то пишу в К а если L то класс который еще ниже?
@takiekakmi75323 жыл бұрын
Ахриненно
@Neuro3es3 жыл бұрын
С тобой научиться - проще простого. Только странно что так мало просмотров.
@PythonHubStudio3 жыл бұрын
Спасибо)
@cyberomanov47483 жыл бұрын
Просто лучший
@PythonHubStudio3 жыл бұрын
Спасибо)
@evgeniiwjay61772 жыл бұрын
супер!!!! теперь могое понятно по Джанге
@Roman-kn7kt2 жыл бұрын
пушка!
@AdmiralUshakovvv2 жыл бұрын
оп) лайкосик и пятихаточка)))
@SultanDev2 жыл бұрын
не могу понять последний пример, чтобы было написано 'А', мы наследуемся почему-то от 'B', но в 'B' же есть метод 'a', как он переходит на класс 'A', или если по другой логике, мы наследуемся от B там он метода не видит, а переходит сразу на 'А' , почему не на 'C'? Этот вопрос был ниже и я им тоже задался во время просмотра
@vittoo492 жыл бұрын
Great !!!
@RockstarAlexander3 жыл бұрын
👍👍
@igrok8782 жыл бұрын
спасибо!
@user-oe6ik5sq1f7 ай бұрын
Харош
@IlyaAb3 жыл бұрын
не могу понять последний пример, чтобы было написано 'А', мы наследуемся почему-то от 'B', но в 'B' же есть метод 'a', как он переходит на класс 'A', или если по другой логике, мы наследуемся от B там он метода не видит, а переходит сразу на 'А' , почему не на 'C'?
@Igor-ut6do2 жыл бұрын
super.(B, self), значит что мы ищем все что выше класса B не включая его)
@bublick346 Жыл бұрын
Это было не очевидно
@showrun47477 ай бұрын
Получается не важно что В суперкласс а не подкласс от А, а просто играет роль порядок в котором они записаны в файле.. поди догадайся
@Dallas1460 Жыл бұрын
🔥👍👍👍
@Slavlotski2 жыл бұрын
По всей видимости на kzfaq.info/get/bejne/rJ6nmM6Jt8XTfas.html оговорились, вы имели в виду Python 3 версии, в нем реализован метод в ширину, а в Python 2 - метод поиска в глубину.
@rizef21669 ай бұрын
Так поиск в ширину это когда в очереди первые на проверку связи первого уровня, в данном случае это C и A, в глубину судя из того что мы видим это когда сначала какая - то из связей ближайших берется, тут которая написана первой в наследование, а потом сразу от нее узел проверяется, а потом уже когда и этот узел был проверен, то идет следующая ближайшая к самой главной. Так что все правильно сказано
@5gugorsky2 жыл бұрын
чётко
@alekseitorsukov23382 жыл бұрын
Спасибо х2!!!
@user-zm9mr1fg4m3 жыл бұрын
@Python Hub Studio, возраст не записывался в файл. Надо дописать в save класса родителя? Или можно добавить в дочерний не дублируя остальную часть кода метода save родителя?
@PythonHubStudio3 жыл бұрын
Неделю спустя.... Класс родитель не трогаем, в этом-то и смысл, мы наследуемся если есть возможность не писать лишнее и не трогать старое. Если нужно записывать ещё и возраст, то метод save родителя не подойдёт там в open чётко прописано что записывать в файл, нужно полностью переписывать код в методе save дочернего класса переопределяя его полностью, но в данном примере он приватный(это нужно учесть)
@user-rx6fk9vk4s2 жыл бұрын
👍
@user-os9lw2uj9s2 жыл бұрын
капец, все понятно.
@user_alex_9 ай бұрын
👍👍👍👍👍👍👍👍👍👍👍👍
@yarikmeyer2 жыл бұрын
почему то "users" не создался....
@alexeyxopyc2471 Жыл бұрын
спасибо за урок) не совсем по теме, но... не совсем понял по поводу __lenPassword() ... он правильно будет отрабатывать?) просто он записал в самом конце, и проверяет уже len(self.password)... тоесть получается он проверяет уже присвоенное значение экземпляра? или если в этой проверке сработает ошибка - то весь код в __init__ отменится и экземпляр не создастся? спрашиваю без всякого негатива, просто не понимаю)
@PythonHubStudio Жыл бұрын
Я не очень помню код, чтоб ответить конкретно, всё-таки видео выпущено не вчера ...) Но главное: данный пример это всего лишь небольшой логический пример, чтоб можно было максимально понятно объяснить классы. Настоящая проверка, выглядит похоже, но все же по другому. Поэтому не заморачивайтесь.
@genylivnev78222 жыл бұрын
День добрый! Есть вопрос именно по классу Verification: почему, если из метода __init__ убрать self.__lenPassword(), то метод __lenPassword благополучно пропускает пароль меньше чем 8 символов и метод save записывает данные. Причем не важно, даже если убрать приватность. Т.е я обязательно должен ставить в __init__ self.password?
@woolgosh2 жыл бұрын
Если из метода __init__ вы убираете self._lenPassword(), то вы убираете и проверку длины пароля. Соответственно при создании экземпляра класса, пароль не проходит проверку на длину, и экземпляр в любом случае будет создан.
@genylivnev78222 жыл бұрын
@@woolgosh Понял. Спасибо!
@bolatmukashev28302 жыл бұрын
когда ты raise делаешь, выполнение программы останавливается? допустим если телеграм бот крутится на сервере, и райзится исключение - бот же продолжит работать или он сдохнет? а event loop поможет избежать остановки работы бота? или ты на момент разработки пользуешься райзами, а потом в продакшене заменяешь всё try/эксептами? аааа не понятно
@PythonHubStudio2 жыл бұрын
Поможет, сдесь нужно понимать, что все зависит от того !что вы пишете!, бота, как самостоятельную единицу или модуль с кодом для использования в более глобальном проекте
@guerila_worker2 жыл бұрын
Почему, если я убираю из класса C наследие от класса B, то если пишу в "D" строку: "B.a(self)", код класса B всё равно отрабатывает. Хотя на него не ссылается ни D, ни C? Пример кода: class B: def a(self): print('B') class C: def a(self): print('C') class D(C, A): def a(self): B.a(self)
@antonpython80592 жыл бұрын
Вы просто напрямую обращаетесь к методу в классе B передавая некий обьект в качестве аргумента, притом все это происходит из одного модуля. Это можно делать всегда и отовсюду, если к методу не применена инкапсуляция.
@FeelGoodNewss Жыл бұрын
автор подскажите, когда вы запускаете код, с новым параметром возраст, то возраст не записывается у вас в текстовый файл, в чем ошибка я не могу понять.
@showrun47477 ай бұрын
Оно и не должно записываться вроде
@nameisSANS4 ай бұрын
Здравствуйте у меня вопрос я когда вызываю метод D.a() то мне в "а" просят передать аргументы, как это можно исправить, спасибо!
@PythonHubStudio4 ай бұрын
В методе не должно быть параметров кроме (self)
@vitaliyg.77472 жыл бұрын
@myprint17742 жыл бұрын
сравнение кортежа будет ли работать корректно если имя пользователя будет не совпадать а пароль совпадать :?
@PythonHubStudio2 жыл бұрын
Проверьте, это пример всего лишь. На практике всё сложнее
@dinazavr952 жыл бұрын
Импортировать класс, над которым будем издеваться разнообразным образом :ROFL
@DontMansion2 жыл бұрын
когда Django на канале?
@storm94799 ай бұрын
Здравствуйте, на 3:48 у меня не создался нигде файл со значениями, хотя ошибки нигде не вывело
@PythonHubStudio9 ай бұрын
Он где-то создался, а конкретно в той папке, которая указана в терминале при выполнении кода. Обратите на это внимание
@storm94799 ай бұрын
@@PythonHubStudio блин почему ответы удаляются
@storm94799 ай бұрын
@@PythonHubStudio Здравствуйте, спасибо за ответ, но проблему я уже решил (она была в том что run запускал файл main. py а не class. py и class2. py где я и писал код, я изменил конфигурацию run и всё заработало)Но раз вы мне тут ответили то у меня есть еще вопросик по видео где вы делали тг бота на aiogram , эта библиотека у меня не устанавливается, вывело что ошибка не в пип а в том что нужно установить Microsoft Visual C++ 14.0 или более позднюю версию, и что я это сделаю если установлю Microsoft Build Tools, далее ссылка на установку буилд тулс, а установил версию 17.0 но у меня по прежнему выводит ту же ошибку я уже перепробовал все способы которые мне советовали в Stack Offerlow , ничего не помогает, вы случайно не знаете в чем может быть дело? Заранее спасибо за помощь.
@MrFog1242 жыл бұрын
Все круто, но нужно было пример сделать не буквенным, было бы понятнее.
@PythonHubStudio2 жыл бұрын
Согласен, пример надуманный, но позволил не отвлекать на сложность написания кода, а сконцентрироваться на теме
@user-mm6wh2tf6u8 ай бұрын
А что это за приложение, на котором вы работаете на этом видео?
@black_grizzly7 ай бұрын
Ide , vs code
@r1man_3 жыл бұрын
+
@RK-cc9rt3 жыл бұрын
Разве можно переопределять методы класса родителя? Это противоречит SOLID-принципам, а именно принципу подстановки Лисков, где класс наследник должен легко заменять родителя, без потери функционала. У наследника должны быть те же функции, что и у родителя, и выполнять они должны одни и те же действия.
@PythonHubStudio3 жыл бұрын
Урок о том что такое наследование,а не о высокопарном...
@RK-cc9rt3 жыл бұрын
@@PythonHubStudio та не, это не предъява, скорее вопрос, ответ на который я сам пытаюсь найти
@RK-cc9rt3 жыл бұрын
@@PythonHubStudio Я просто читал про SOLID-принципы и пытаюсь в них разобраться, потому что недавно общался с программистом с 10ти летним стажем и он говорит, что эти принципы очень часто не нужны, ведь не будешь на каждую новую фичу создавать отдельный класс от родителя, вот я и ищу, где бы мне понять рамки принципа открытости/закрытости и подстановки Лисков
@PythonHubStudio3 жыл бұрын
Это скорее необходимость когда она уместна. Например: Написал какую-то библиотеку, выкинул её в мир и стрегешь капусту. Потом сделал новую версию, но так чтоб старые коды на ней работали, вот в принципе и все
@black_grizzly7 ай бұрын
Я не знаю принципов solid и не трогал их даже, но мне показалось странным переопределение классов в дочернем классе. Понимаю, что это пример, конечно же. Но интересно есть ли прикладная часть у такого способа.
@mikhail34662 жыл бұрын
Может я что то не так делаю, но как сделать так чтобы необязательные параметры со значением по умолчанию попадали из родительского в наследованный. class Human: def __init__(self,name='Noname',age=18): self.name=name self.age=age def call(self): print(f'My name is {self.name}. Im {self.age}') class Man(Human): def __init__(self,name='Noname',age=18,salary=10000): super().__init__(name,age) self.salary=salary def call(self): super().call() print(f'My salary is {self.salary}') man=Man() man.call() # Мне бы хотелось чтобы при при создании обьекта класс Man без параметров, брались значения по умолчанию из Human, чтобы не писать их как сейчас это сделано
@PythonHubStudio2 жыл бұрын
class A: def __init__(self, name='alex'): self.name = name def show(self): print(self.name) class B(A): def __init__(self,surname='Un'): super().__init__() self.surname = surname def show(self): super().show() print(self.surname) B().show() Уберите из строки c super параметры
@Amigo98762 жыл бұрын
Каждое следующее видео все меньше и меньше просмотров. Видимо не дотягивают люди. Семичасовой курс - 850к просмотров, а ООП и телеграме уже намного меньше, особенно последние видео.
@Direct_Inclusion8 ай бұрын
Здравия! Плейлист python для начинающих: - " Плейлист не существует. "
@PythonHubStudio8 ай бұрын
Спасибо, завтра поправлю. Там было видео "python за 7 часов", и парсинг для практики. Эти видео на канале есть, забыл поменять в описании этого видео ссылки. Парсинг в правильной последовательности в плейлисте парсинга, а видео 7 часов отдельно.
@__rm_2 жыл бұрын
открой телеграмм канал пожалуйста. иногда естт вопросы по коду а сам найти решение и ошибку найти не могу. было бы круто. извини за наглость . ты и так много делаешь для нас
@PythonHubStudio2 жыл бұрын
Все вопросы в комментах, если не пропущуj(по техническим причинам и если вопрос четко поставлен), будет ответ.
@ValeriiSynenko2 жыл бұрын
"этот класс, наследует метод инит, этого класса" что вообще происходит в этом видео??
@koltdota Жыл бұрын
что нельзя было назвать метод "а" по другому для объяснении?
@showrun47477 ай бұрын
Судя по обсуждению это непонятно только вам..
@Kos37376 Жыл бұрын
Я ради прикола добавил проверку на заглавную букву в имени пользователя. Вот код,если кому интересно. def __init__(self, login, password): self.__firstletter() def __firstletter(self): if self.login[0].isupper(): return True else: raise ValueError('Укажите заглавную букву')
@nachfinbolshevik2 жыл бұрын
Кому лень писать код файла class3.py class A: class B: class C(B): class D(C, A): class Verificatoin: def __init__(self, login, password): self.login = login self.password = password self.__lenPassword() def __lenPassword(self): if len(self.password) < 8: raise ValueError ('Слабый пароль') def save(self): with open('users', 'a') as r: r.write(f'{self.login, self.password}' + ' ')
@PythonHubStudio2 жыл бұрын
У многих будет ошибка из-за копи-паста в idle, но круть!