Первые шаги в ООП: класс, объект, self
По многочисленным просьбам, осторожно подступаю к сложной теме объектно-ориентированного программирования(ООП). В данном видео посмотрим откуда есть вообще пошло ООП, в чем его суть, когда оно может применяться.
Внимание! ООП - это сложная тема, требующая вдумчивого изучения и практики, обязательно нужно читать литературу, документацию и писать свои классы, чтобы понять происходящее.
Читать:
"Learning Python", Fifth Edition by Mark Lutz
docs.python.org/3/tutorial/cl...
"Python 3 Object-oriented Programming", Second Edition by Dusty Phillips
💊ООП: Инкапсуляция в Пайтон • ООП: Инкапсуляция в py...
🐣ООП: Наследование (Inheritance) • ООП: Наследование (Inh...
Присоединяйтесь к помощи каналу, будет интересно)
✔️Бусти boosty.to/python_russian/donate
✔️Юмани 410011506612886
Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
#Python #PythonRussian #PyCharm
Пікірлер: 148
друзья, ООП с одного видео или одной книги не освоить. Это видео первое из ряда, запланированных, где я попробую рассказать что знаю о ООП. Напоминаю, что выражаю свое мнение и это видео никак не может заменить чтение теории и практики написания кода.
@nikitabbrv5947
2 жыл бұрын
а какая может быть практика по ООП? т.е. как практиковать? вроде сначала нужно вучить ООП, потом за джангу ту же садиться? или можно параллельно
@user-xx6yb2cr2h
2 жыл бұрын
Простите за глупый, возможно, вопрос, но как вы сделали так, что комментарии в коде не подсвечиваются никак?
@user-ev8tr5fh1o
2 жыл бұрын
Лучше бы не только своё мнение выражал, а копал в историю. Как и откуда взялось ООП, что изначально значили понятия "инкапсуляция" и "полиморфизм", откуда они взялись, кто и зачем их придумал, какая связь между полиморфизмом и лямбда-исчислением. Как эти понятия эволюционировали, почему без них ООП считается не ООП. Как выглядела бы функция без полиморфизма и код без инкапсуляции, показать примеры (если есть такой язык). В общем, истоки, суть - возможно, стал бы первым, кто привёл бы в эту тему какую-то ясность и однозначность. Мнений и собственного видения и так хватает.
@PythonRussian
2 жыл бұрын
@@user-ev8tr5fh1o а почему вам именно этим копанием не заняться? у моего канала совсем другая направленность.
@user-ev8tr5fh1o
2 жыл бұрын
@@PythonRussian Да я просто предложил, что ты сразу агришься. Не хочешь - не делай.
Автор, нижаший тебе поклон и уважение! Контент на канале прям кладезь. Спасибо за труды! Ну и по возможности, продолжай, хотя понимаю, что это титанический труд!
@PythonRussian
2 жыл бұрын
спасибо. Вы правы, времени не хватает, хотя уже намекают, что пора снимать продолжение. Постараюсь на этой неделе, если все получится.
Единственный автор, который объясняет так что ты реально начинаешь ПОНИМАТЬ суть темы Огромное спасибо за контент!
Огромное спасибо! Чистейшая подача смысла, до этого начинал 5 разных курсов по ООП так ничего и не понял )) а тут за час главная суть!
Какой же автор красавчик. Конечно нужно продолжать, очень мало путных роликов по ООП и программированию в целом. Огромная благодарность автору за его труд.
Очень люблю людей, которые вникают в суть вещей и могут доступно эту самую суть донести. Спасибо!
наконец то хорошее объяснение ооп как же я долго не мог понять что такое self. спасибо автору этого канала
Низкий поклон Автору за его труд! Действительно понятно о чём идёт речь
Отличное объяснение. Однозначно буду ждать продолжения. 👍
Лучшее из тех видео что смотрел по определению ООП для новичков. Огромное спасибо.
@alley1180
Жыл бұрын
Алексей, включите реакции в телеграмм канале, чтобы и там вы видели отдачу подписчиков! Спасибо еще раз )
00:38, конечно стоит продолжать! С твоей подачей, для новичков и не только, это то, что нужно👍
Спасибо за отличную подачу материала, отдельное спасибо за исчерпывающие вводные, предыстории и попытки объяснить явления с разных сторон!
Во-первых, слышно, что ты крепко соображаешь. Это редкость, поэтому меня очень радует. Во-вторых - очень толково объясняешь.., я бы сказал - эталонно. Не бросай только. У тебя точно получится раскачаться.
спасибо что разжевал четко базовые принципы ооп, в документации иногда сложно понять что к чему, поэтому такие ролики необходимы для закрепления материала!
Большущее спасибо за уроки. Прекрасный контент позволяющий пойти к среднему уровню питона. Коммент пишу к этому ролику, но смотреть буду все.
Очень круто все разъясняется по всем темам. Жаль что новые видео выходят крайне редко. У автора великолепный дар к преподаванию. Успехов во всех начинаниях и ждем новых видео. Спасибо!!!
@PythonRussian
Жыл бұрын
спасибо. Да, к сожалению не получается чаще снимать, последний квартал года самый напряженный, по времени тяжело.
Спасибо за такую проделанную работу! Смотрю твои видео как дополнение для более подробного разбора темы.
Все очень доступно, отлично подходит для закрепления информации после прочтения книг или документации, т.к. все объясняется на простых примерах. Продолжай пожалуйста!
Более лучшего объяснения ООП я еще не видел и наконец-то понял что такое self. Автор, спасибо тебе большое!!!
@PythonRussian
Жыл бұрын
приятно, что я не зря старался =)
Вот это вещь, Welemir1!) Давно ждал и дождался Спасибо!
В 2024 уже много роликов на Ютубе про ооп, но что такое self понял только после этого видео, спасибо
спасибо! Даже очень увлекательно и очень понятно.
Мужик знает что делает. Спасибо большое
Супер объяснение. Благодарю! 👍
Отличное видео. Спасибо огромное! Ждём продолжения.
Супер объяснение! Спасибо огромное! Все по полочкам уложилось у меня, наконец то!
Круто, спасибо вам за ваш труд!!!
Огромное спасибо автору за труд!Это лучшее видео для понимания!Буду ждать следующих видео)
лайк в поддержку канала, а посмотрю потом)
Спасибо большое за понятное изложение человеческим языком!
Было идеально, спасибо за хорошие аллюзии на которых материал воспринимается ещё лучше)
Огромная благодарность тебе!
Чел ты восхитителен! Спасибо за разъяснение!
Отличное видео, автор, ты молодец, буду следить за обновлениями 👍
все хорошо и доступно объяснено, спасибо за видео! ждем продолжения
Спасибо за видео, жду продолжения
действильно отличный контент! спасибо!
Да это верно, когда информация из разных источников под разными углами рассматривается понимание быстрее приходит. Спасибо!
Отлично видео. Очень круто объясняешь. Продолжай!
это лучшее объяснение ОПП что я встречал. Автор просто молодчина
Хорошее объяснение, примеры понятные, лично для меня это видео намного понятнее чем другие на тему ООП. Спасибо автору!
Спасибо! Очень доступно и понятно.
Спасибо, очень здорово❤
Добрый день, понравилось Ваше изложение. Хотелось бы продолжения по магическим функциям, пока не разобрался с ними. Спасибо.
видео - пушка, все ясно и четко!
спасибо за видео, подписка оформлена ! четко, ясно.
Круто. Очень познавательно даже для опытных)
Очень доступно разложил все по местам.
Красавчик,все знал но интересно рассказываешь))))
лучшее объяснение. Спасибо!
Спасибо! Красавчик! Смотрел на скорости х1,5 и х2 всё понятно :)
Супер! Спасибо!
Респект, автор хорошо объясняет тему
Очень классно объясняешь Спасибо 🙏
спасибо, крутое объяснение!
Спасибо, что открыл глаза на ООП!😉
@PythonRussian
Жыл бұрын
не за что -пользуйся =)
Спасибо. Понятно о непонятном.
Спасибо Вам
отлично, первый из многочисленных роликов по ООП, нде га практическом простом примере показано его преймущество
Мужик, ты прям топчик! За час видео такой слой усвоил легко)
Шикарные у вас видосы, отлично дополняют основной материал
@PythonRussian
Жыл бұрын
не перехвалите=) стараюсь по мере сил, к сожалению времени не хватает, будем изыскивать.
@barma1309
Жыл бұрын
@@PythonRussian Django school дополняете :-)
Очень доходчиво. Давно искал материал где мне будет понятно что такое self. Обычно просто переводят что это «свой собственный», здесь же конкретно как этот self работает. Ну и вообще весь материал был полезен. Если бы я смотрел это видео с нулевыми знаниями, может быть и не все понял, но так как уже базовые знания имеются, но не хватает именно вот таких кусочков чтобы все пазлы сложились в одну картинку. Спасибо за подробное объяснение.
А твои метафоры прям в точку. Спасибо, встали мозги на место😂
Спасибо большое за такое простое и понятное разжевывание на пальцах довольно сложных вещей, у вас определенно на это талант, я это еще заметил с декораторов, без лишней непривычной для начинающих терминологии и какого-либо ИТишного пафоса и надменных объяснений, когда тебе просто говорят, иди и читай документацию, там все написано)
Большое спасибо
Спасибо огромное
Привет, дружище, хорошее объяснение классов
@PythonRussian
Жыл бұрын
благодарю!
Что самое интересное, я не зная ООП начал применять что-то похожее в своем первом коммерческом проекте. Я только учусь но очень рад что получилось понять автора. Спасибо вам большое за эти эмоции))
Спасибо, мне стало намного понятнее)
Наконец-то я понял, что такое селф!!!!! - нигде так круто доселе не видел объяснение. Спасибо.
@PythonRussian
Жыл бұрын
это наверное лучшая похвала для меня, потому что как раз про селф сомневался, что получится объяснить нормально. Спасибо
Спасибо Сенсей
Классное видео, мы действительно мыслим объектами -- существительными, а методы у нас глаголы и часто глагол связан с конкретными существительными. Ехать может машина, но не, допустим, дом. У дома свои методы.
очень хорошо обьесняешь
очень хорошо, даже такой затупок как я немного понял принцип работы
Спасибо
👍👍👍
Только у тебя такие обширные видео, у других видео по 10 минут и толком ничего не понятно) огромная благодарность автору)
👏👏👏👏👏👏
объяснено лучше, чем у selfedu
Очень хороший подход к объяснению с разжёвыванием самых мелких мелочей, непонимание которых в других пояснениях на тему может вызывать (и вызывает) ступор. Спасибо автор! P. S. Впрочем, непонятно, почему в самом начале объяснением появления равенства main == name пренебрегли.
Огромное спасибо за урок! Мне заходит Ваш формат подачи информации. В качестве фидбэка могу сказать что мне не хватило примеров, как твою задумку превратить в набор классов. Как правильно поделить классы, как определить ту черту, ниже которой не стоит разбиваться на классы (здесь шутка про класс работников и углеродные формы жизни). Я сейчас пишу небольшую программку и даже поняв, как мне показалось, всю тему, изложенную в видео, я не смог спроецировать свою идею на ООП подход. Вероятно, я, все-таки, не до конца понял, раз не могу этого сделать. И пока что, я не смог найти видео, которое бы закрыло мне этот пробел. Вроде, суть понимаю, а вот на практике применить не могу. Еще раз, спасибо👍 Лайк, подписка!
@PythonRussian
11 ай бұрын
начинать надо с простых примеров, а не реализовывать сразу огромные иерархии, у новичков есть это непреодолимое желание сразу космический проект написать. Все ведь приходит с опытом и набивать его надо постепенно усложняя задачи.
@Author_shorts
11 ай бұрын
@@PythonRussian так я и не начинал никаких гигантских иерархий) Мне не 15 лет, я трезво оцениваю свои силы и начал с небольшой проекта) Который я без особых сложностей разложил по модулям и практически уже довел до финального состояния всего за пару недель свободными вечерами) Еще, свободными вечерами я люблю посмотреть Ваш канал, и вот решил я попробовать переложить все что сделал в ООП парадигму и понимаю что не получается. Я не утверждаю что Ваше видео плохое. Я даже утверждаю что оно хорошее. Я просто дал фидбэк как новичок) Посмотрел подобные видео на других каналах и пробел так и остается. Осталось чувство чего-то незаконченного, от просмотра. Возможно, Вы все изложили четко и понятно и я просто тупой, такой вариант я тоже не исключаю Я немного дополню, не то что я не могу переложить, скорее, не знаю как подступиться и с чего начать. Я вижу потенциальные объекты в своем проекте, но моя голова не может понять как это должно уложиться в классы и взаимодействовать.
Спасибо, познавательно. А чего телеграмма нет, очень полезно для начинающих разбираться, обсуждать непонятные моменты в профильных чатах, там же голосовалки, полезная инфа, реклама... )
Привет))). Супер объясняешь для новичков и гумманитариев. Много видео смотрела. Многое оставалось не понятным. Так как все it блогеры говорят на своем сленге не объясняя что это значит. И приходит какое-то размытое понимание, вроде знаешь, но не понимаешь🙈
@PythonRussian
Жыл бұрын
спасибо, стараемся
1000 извинений! Разбегались глаза тоm.... Name. Для себя разложил так: Класс: Кошачие Объекты: Кот Кошка И дальше уже использовать имена собственные Tоm, Angela. Спасибо!
Объект - это переменная, которая содержит в себе данные и код. В отличие от обычной переменной, которая содержит в себе только данные. И в отличие от обычной функции, которая является, условно говоря, только кодом, который только принимает и возвращает значения (нечто со "входом" и "выходом") и/или производит какие-то действия, при этом не сохраняя своего состояния (удаляется по завершению работы). Класс - это функция-шаблон, которая может иметь подфункции (методы). ООП нужен, когда требуется создать много экземпляров чего-то по некоторому шаблону. Грубо говоря, когда одновременно нужно иметь множество экземпляров одной функции, но различающихся вводными данными (аргументами) и каждый из экземпляров должен функционировать независимо, находясь в своём собственном отдельном состоянии. Атрибуты это просто глобальные переменные с "двухэтажным" именем, первая часть которого является названием объекта.
Большая просьба еще рассказать про __init__ и __new__ - что в какое время инициализируется при определении и создании класса и какое применение может быть.
@PythonRussian
2 жыл бұрын
да, сделаю
Спасибо !!! Огромное !!! Разложил тему на атомы !!! Помогло !!! Уже не так Страшно!!!
Спасибо большое! Как раз все расжёвано для нубиков
Где модно посмотреть простые задачи? Спасибо за урок
100 лайков тебе!!!
хорошо бы шрифт сделать крупнее
Можешь сделать по py game? Много людей смотреть будут, или базы вебпрограммирования и вебдизайна. Буду очень рад)
@PythonRussian
2 жыл бұрын
пигейм мне не интересен, пока буду вещать про ООП, дальше посмотрим
Не думала, что программисты столь многословны.
Ну тут без б, что у тя есть вот желание объяснить. Я много смотрел видео и тд, там все по терминам. И я еще должен думать че значат те термины, что-бы потом думать что эти термины объясняют. А когда все простым языком, то все в голову представляеться само собой, и уже синтаксис кода базуеться на представлениях, шо круто. Короче , спасибо
Спасибо! Подскажите пожалуйста, как сделать взаимодействие между объектами. Например Том как-то ... Анжелу и у нее, например рождается какое-то количество котят. Как прописать tom.use(angela)?????
@PythonRussian
2 жыл бұрын
использовать -это как то не хорошо. Метод про размножение прописать можно конечно, но надо многое продумать, на вход он принимает объект кота, должен проверять что они разных полов и в случае удачи должен менять состояние самки на "беременна".
@umnyakk
2 жыл бұрын
@@PythonRussian Спасибо, я как раз учусь, и вопрос взаимодействия объектов пока для меня не понятен. +++
Фуф, досмотрел всё! Очень-очень интересные видеоматериалы и неоправданно мало просмотров. Многое для себя подчерпнул сверх того, что знал. Очень не хватало таких вот обзоров-комментарий на основные разделы питона от человека, который работает с ним каждый день. Есть несколько вопросов, если не затруднит вас ответить? 1. Когда приступать к джанго, аиограму, фласку, асинцио и т.д.? До какой степени сначала нужно изучить всё, чтобы начать работать с этим? И с чего начинать работу - с изучение доки, с изучения, как написаны классы в коде? С примеров в интернете и постепенным изучением доки? Я не раз встречал фразу, например: прежде чем приступать к ботам - изучи питон. А когда я пойму, что я знаю его в достаточной мере, чтобы начать постигать либы/фреймворки? Не хватает, конечно, в мире программирования сертификатов типа CCNA у циски, как показателя знаний. 2. Как вообще правильно изучать библиотеки? Например селениум: там же миллион разных методов с миллионом аргументов к каждому методу. 3. Если можно, то было бы здорово записать видео про логгирование. Те мануалы, что я смотрел в рунете, они или слишком замороченные или слишком просты и что-то забацал на коленке, но все-равно нет примеров, как это делают в реальных компаниях 4. Зачем под модули, которые создаются для маленьких тестов(не юниттестов или пайтестов, а под изучение разных методов и объектов языка), как в данном случае, создавать отдельно пакет? Это правило хорошего тона? Питону то по сути все-равно папка или пакет. По Лутцу так пакет вообще должен только содержать связанные между собой модули (логически связанные) 5. К вопросу из второго стрима про то, что удалить из питона - удалить возможность создавать ГУИ. В ВУЗе был C# и знакомство с VisualStudio и там я пилил простенькие формы для лабораторных. А первую вообще сделал в Делфи ещё в школе. Так вот, когда я в питоне познакомился с tkinter, pyqt я вообще не понял, почему тут так всё с этим сложно?? Проще, если бы нынешний коллектив разработчиков питона сказал: "ребят, хотите делать десктопные программы с графическими интерфейсами - идите в си подобные языки", потому что на питоне никогда не сделать красивую форму, как в VisualStudio. 6. И ещё момент. Вот человек учит-учит язык питон. Да, он очень классный. На нем приятно писать. Но, вдруг, когда ты хочешь искать работу, оказывается, что из доступных направлений простому человеку применения его за деньги, оказывается очень мало. Это или QA или бэкэнд в виде Джанго, которого, как я понял, в России, очень мало применяют и в основном, как внутренний портал. Про датасайнс, машин лернинг и прочее для выпускников мехмата МГУ я молчу. И предложений на рынке не так много (или я путаю? но я недавно смотрел на hh: django python junior и было 8 вакансий на всю Москву). Ну ещё шабашки в виде ботов и парсеров на fl ru можно брать. И вот страшно от того, что ты тратишь время, ты учишься, отказываешь себе в очень многом, потому что есть желание делать что-то интересное, полезное, изучаешь все маленькие нюансы и в итоге окажется, что надо было учить что-то другое. php например (php junior мне показало 100 вакансий и причем из требований знать сверх самого php лишь какую-то либу laravel или как там её, а на джангистов на джуна видел требование знать какие-то методы оптимизации потока траффика, умение масштабировать, что для меня просто слова и не ясно, как можно масштабировать что-то там?!)
@Dima7100
2 жыл бұрын
И ещё: с какого возраста тебя уже даже джуном не будут рассматривать?
@PythonRussian
2 жыл бұрын
Ничего себе накатал вопросиков))) 1) приступать к новым библиотекам типа фастапи, джанго и селениум можно после первого тома Лутца на английском. Почему на английском? В русском переводе его разделили еще на 2 тома, а по факту там один - изучаем пайтон, со всеми основами вплоть до ООП. Зная это можно потихоньку браться за все остальное, без ооп, декораторов, генераторов -нет смысла. 2) Изучать любую бибилиотеку крайне полезно с документации, простой совет но ему мало кто следует, в итоге лезут потом на форумы и СО с тупыми вопросами, написанными на 1 странице доки. Там обычно и как установить и с какими версиями и как начать. Тот же Селениум не так уж и заморочен, достаточно немного погрызть доку и может пару книг по нему. Там всего способностей то кликать да скроллить. 3) про логи подумаю. 4) как оформлять свой проект -тебе решать, я лично предпочитаю структурировать, а в папках хранить только тесты либо ресурсы какие то, в пакетах -код. 5) согласен, гуи и киви не нужны. 6) ну вообще то ты не тратишь время, ты узнаешь и умеешь что-то новое, что пригодится тебе и в других ЯП, те же паттерны, декораторы, организация кода и т.п. Джанго на самом деле очень широко используется. По вакансиям -не мониторю, но недостаток работников на рынке есть и ближайшие 5-10 лет не пропадет, так что надо искать просто и показать себя. В тех же автоматизаторах тестирования (твой любимый Селениум) можно зарабатывать не меньше разработчиков.
@PythonRussian
2 жыл бұрын
Ситуации разные бывают, но я бы сказал что ближе к 40 шансы очень сильно падают. Не то что их совсем нет, но сложности точно будут, к ним надо быть готовым. Есть конечно свои подходы и в таком возрасте, но сложно
@Dima7100
2 жыл бұрын
@@PythonRussian Спасибо за ответы. Вас звать Алексей же, да? Я не в негативном ключе говорил, что трачу время) Просто я не хватаю звезд с неба и понимаю, что не буду каким-то супер-пупер программистом, а буду самым обычным, в лучшем случае, и хотелось бы, чтобы и такие самые обычные тоже были нужны на нашем рынке труда и потратив сейчас пару лет на изучение, будет крайне грустно понять, что с этим стеком ты никому не нужен. Мне под 30 уже и я понимаю, что осталось в самом прямом смысле пару лет, когда ещё можно что-то поменять в жизни или оставаться полуадмином/полуэникеем. А по Лутцу, да, я уже на середине второго тома. К счастью с ООП я знаком по джаве и си шарпу и не нахожу пока что каких-то сложностей. И да, я одобряю подход, как в книгах у Лутца, когда ты фундаментально изучаешь всё, что есть, а не краткие выжимки, как в мануалах в интернете, потому что потом ты помнишь, что тут и там можно сделать вот так и так. Больше запоминается что ли.
@PythonRussian
2 жыл бұрын
@@Dima7100 да Алексей. Я сам в ИТ пришел после 30 и тоже начинал с джавы, так что все шансы есть. Крепко изучи основы, наваяй пет-проект и вперед
Как обычно видео очень хорошее получилось. Приятно посмотреть. Нет ли планов по созданию какой нибудь запасной площадки на случай проблем с ютубом? В ВК или телеграме. Очень не хотелось бы потерять связь.
@PythonRussian
2 жыл бұрын
спасибо за подсказку, добавил в ссылки канала свой дзен zen.yandex.ru/id/60cdcdccff2e344fede5217e
@aksenovsergey6205
Жыл бұрын
Погуглите что такое VPN. Если для вас это является проблемой, то к программированию лучше даже не приступать.
@voila2000
Жыл бұрын
@@aksenovsergey6205 Вопрос адресовался не Вам, и Вы даже не поняли его суть.
очень хорошо обясняешь, может быть даже лучше всех на всем рутубе, но есть один огромный минус, микроскопический текст!!!! нифига не видно , и это при том что ты используешь 5-7% от всей площади екрана
@PythonRussian
Жыл бұрын
стараюсь увеличивать до 20, может вы смотрите на телефоне? в последнее время на размеры не жаловались
@tarasst6887
Жыл бұрын
@@PythonRussian Ну да, на телефоне можно увеличивать, но когда писал комент, смотрел видео с ноута.. Было оч. Тяжело читать код(( но сам контент и подача 👍👍👍👍👍👍
Я постоянно вижу у кого-то в коде написано if __name__ = __main__:, что это?
@PythonRussian
2 жыл бұрын
kzread.info/dash/bejne/hHtsxtGbpsmcm6g.html