ООП: Инкапсуляция в python

Поделиться
HTML-код
  • Опубликовано: 20 сен 2024
  • Рассмотрим одного из 3 китов ООП - инкапсуляцию, посмотрим чем она является и чего лучше не ждать.
    Инкапсуляция под собой подразумевает сбор данных и методов для работы с ними в одно место(класс), а также предоставление публичного интерфейса(АПИ) для работы с ними.
    В питоне применяется нижнее подчеркивание _ для пометки внутренней реализации, то есть атрибутов не относящихся к публичному интерфейсу.
    Одно подчеркивание (protected) - это всего лишь сигнал, интерпретатор относится к таким атрибутам как к обычным.
    Два подчеркивания (private) - включает механизм подмены имени Name Mangling, который предназначен не для сокрытия данных.
    Инкапсуляция в питоне не подразумевает сокрытия данных (в некоторых языках это одно и то же) - все данные доступны для просмотра и изменения. В Python мы не пробуем отобрать у юзера инструменты, мы предупреждаем.
    👣ООП Первые шаги • Первые шаги в ООП: кла...
    🐣ООП: Наследование (Inheritance) • ООП: Наследование (Inh...
    Присоединяйтесь к помощи каналу, будет интересно)
    ✔️Бусти boosty.to/pyth...
    ✔️Юмани 410011506612886
    Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
    #Python #PythonRussian #PyCharm

Комментарии • 74

  • @PythonRussian
    @PythonRussian  2 года назад +15

    Друзья, несколько раз в видео оговорился, не судите строго, например приватность в других языках не означает что свойство нельзя изменить, это означает что доступ к нему можно получить только через специальные методы. Суть в том что в питоне инкапсуляция не означает сокрытие данных, все и везде можно получить и изменить.

    • @vdavful
      @vdavful 2 года назад +1

      Оговорки учителя с последующим исправлением наверное полезны для слушателя. Позволяют лучше запомнить ситуацию.

    • @ЕВЯ-о3м
      @ЕВЯ-о3м 2 года назад +2

      А если доступ к Ютюбу забанят, чего делать то будем???? В телеграмм канале лишь ссылки на тот же Ю тюб!!!!! Жалко будет потерять такой ценный канал

    • @PythonRussian
      @PythonRussian  2 года назад +4

      @@ЕВЯ-о3м в заголовке канала и в статье есть ссылки на Дзен и на Рутуб, там все дублируется.

  • @Korvys777
    @Korvys777 2 года назад +7

    Огромное спасибо за труды! Как всегда - ТОП!

  • @khamzinadel
    @khamzinadel 2 года назад +2

    Спасибо за контент, для меня это лучший канал ,когда что-то прочитал вроде понял ,но хотелось бы все знания собрать в кучу и окончательно разобраться

  • @alexeysolovjoff5241
    @alexeysolovjoff5241 3 месяца назад +1

    Если кому-то интересно, то в нижней половине экрана слева есть кнопочка 'Soft-Wrap', которая позволяет избежать долгой и унылой прокрутки экрана вправо.

  • @ruslanboroda5145
    @ruslanboroda5145 2 года назад +2

    Автору, огромное спасибо за видео!

  • @ainurbektemirova2158
    @ainurbektemirova2158 2 года назад +5

    Ждем еще видео об ООП. Также можете видео про мультисервисную архитектуру снять, плиз

  • @Mr-gw9bg
    @Mr-gw9bg Год назад

    Спасибо за видео! В остальных источниках просто рассказывали про приватность, защищенность. Это все достаточно просто, но понимания КАК это использовать не было, а благодаря тебе, все встало на свои места.

  • @wizard_y1002
    @wizard_y1002 2 года назад +2

    Спасибо большое за уроки! Для начинающих - незаменимые, на ютубе таких грамотных уроков мало. Если возможно - подробный урок по Алгоритмам в Python. С уважением!

  • @im0767
    @im0767 Год назад

    Спасибо. Авторская подача для меня доступная и понятная.

  • @rilita6216
    @rilita6216 3 месяца назад

    Спасибо большое за такие подробные понятные видео!

  • @MurtagBY
    @MurtagBY 2 года назад +2

    Начал рефлексировать по своему стилю программирования по 3 годам опыта работы.
    Понимаю что в рабочем коде и в моем коде практически нет инскапсуляции (есть иммутабельность), практически нет наследования. "Контракты" помогает валидировать mypy - весь код типизирован, что упрощает рефакторинг и поиск зависимостей.
    Основные принципы ООП в общем не выдержаны и не могу сказать что вижу явные проблемы в этом.
    Изучаю заново "основы" с долей сомнения, а за видео спасибо.

  • @pointofview654
    @pointofview654 2 года назад +4

    Таких полезных каналов у меня единицы -( а подписок у меня у пару сотен

  • @cocojabaa
    @cocojabaa Год назад

    Очень информативный ролик. Да, длинный, зато за одно видео объяснил все, что не могут объяснить другие. А на счёт использования одинарных и двойных подчеркиваний - я думаю что можно обойтись только одинарными. С ними меньше мороки, а все остальные и так поймут что трогать такие атрибуты не стоит

  • @sezzarr8407
    @sezzarr8407 Год назад

    Для сишников это прям супер важный видос. Рекомендую.

  • @madwolf_by4355
    @madwolf_by4355 Год назад

    Могу сравнить только с C#, и сразу бросается в глаза то, что хоть по факту строк кода меньше в питоне, однако благодаря встроенным в студию всяким помогателям прогеру оформить get и set инкапсулированный быстрее в C#. При этом очень удобно точки останова там ставить в последствии.

  • @cr3ker
    @cr3ker Год назад

    огромное спасибо, так хорошо и понятно как Вы, на ютубе не объясняет никто. и голос приятный))) интерестно будут ли видео по асинхроности, многопоточности, мультипроцессинге?

    • @PythonRussian
      @PythonRussian  Год назад

      возможно будет про многопоточность и асинк

  • @kh1tko
    @kh1tko 8 месяцев назад

    Очень хорошо объясняешь. Спасибо

  • @РоманАнтипов-ч1ф
    @РоманАнтипов-ч1ф 2 года назад +1

    Автор, включайте донаты)
    За такой контент хочется благодарить ❤‍🔥

    • @PythonRussian
      @PythonRussian  2 года назад

      а какие донаты? ютуб отключил все, включая спонсорство, остался только кошелек юмани в описании к видео

    • @РоманАнтипов-ч1ф
      @РоманАнтипов-ч1ф 2 года назад

      @@PythonRussian хреново, не знал даже( но может подписки на патрионе или что-то в этом духе

  • @barma1309
    @barma1309 2 года назад +1

    Спасибо за контент!

  • @BotFather-m3s
    @BotFather-m3s Год назад +1

    Братан, все огонь. Но прошу тебя, смени клавиатуру))) Очень громкая

    • @PythonRussian
      @PythonRussian  Год назад

      это подарок, нельзя пока сменить =) но микрофон подальше уберу от нее

  • @vitalii_myt
    @vitalii_myt Год назад

    Очень доступно. Спасибо!

  • @user-xy5eq1ej2g
    @user-xy5eq1ej2g 2 года назад

    Все прекрасно поняли. Огромное спасибо!

  • @y18kotov
    @y18kotov Год назад

    Все понятно. Благодарю!

  • @denisnjar5369
    @denisnjar5369 Год назад

    еще не досмотрел до конца, но уже - ОХРЕНЕТЬ!

  • @themarineussr2011
    @themarineussr2011 Год назад +1

    отличное видео!!!

  • @user-buser_eto_ja
    @user-buser_eto_ja 7 месяцев назад +1

    Очень хороший маетриал

  • @Akkaunt__Yerjan
    @Akkaunt__Yerjan Год назад +1

    Красава,респект!!!

  • @F_C_T_L
    @F_C_T_L 2 года назад +2

    Подскажите как автор видео сделал фиолетовый интерфейс ? Смотрю уже 4 видео и всегда приятнее смотрять на фиолетовый интерфейс нежели на мой серый.

    • @PythonRussian
      @PythonRussian  2 года назад

      сам давно подсел на эту цветовую схему. Заходи в настройки -Плагины, поиском найди и установи Dark Purple Theme. Если автоматом не применится то после установки в настройках поменяй тему руками.

    • @F_C_T_L
      @F_C_T_L 2 года назад

      @@PythonRussian Большое спасибо!

  • @МишаПиштой
    @МишаПиштой 2 года назад

    Лучший !)

  • @stevem4806
    @stevem4806 Год назад +1

    Здравствуйте, спасибо за еще одно отличное видео с понятными объяснениями! Скажите, пожалуйста, как работает код на 10:40 "e for e...", вот именно эта конструкция? Нагуглить не удалось...

    • @PythonRussian
      @PythonRussian  Год назад +1

      это листкомпс, вот тут про них ruclips.net/video/vEBhdOxpHJM/видео.html

    • @stevem4806
      @stevem4806 Год назад

      @@PythonRussian спасибо, буду изучать!

  • @Roland_Games
    @Roland_Games 2 года назад +1

    Привет! довольно поздний комментарий, но суть не меняет у вас на канале есть ролик как правильно изучать пайтон. Есть довольно не плохой сайт кодварс. Если будет возможность можно ли от вас услышать мнения о нем и тд. В качестве видео ролика.

    • @PythonRussian
      @PythonRussian  2 года назад +3

      любой источник который мотивирует тебя писать код, решать задачи и не требует за это горы денег -хороший

  • @viktorbenda489
    @viktorbenda489 2 года назад

    Класс!

  • @Net-olekma
    @Net-olekma 2 года назад +1

    Очень хорошие видео. Хорошо бы побыстрее и побольше :)

  • @IvanBoldyrev-ly5cp
    @IvanBoldyrev-ly5cp 6 месяцев назад

    Не понял момента про другие языки. Как инкапсуляция может быть разная в различных языках? Инкапсуляция - это принцип ООП и он един для всех языков. А еще сокрытие != инкапсуляции.

    • @PythonRussian
      @PythonRussian  6 месяцев назад

      един, а понимают его по разному, в видео про это и говорится, например в джаве под инкапсуляцией имеют в виду именно сокрытие данных, во главу угла ставится приватность и геттеры/сеттеры. В этом большая разница с питоном, где ничего не скрыто.

  • @ЕгорСоловец-л1н
    @ЕгорСоловец-л1н Год назад

    Первое видео уже было по сути про инкапсуляцию. Ведь если данные и функции (методы) находятся раздельно, то это не объект; а объединение данных и методов в какой-то сущности это ни что иное, как инкапсуляция.

  • @python689
    @python689 2 года назад +1

    Здравствуйте, когда продолжение?

    • @PythonRussian
      @PythonRussian  2 года назад

      посмотрим, крайне тяжело со временем, может получится на этих выходных

  • @fedordostoevskiy4209
    @fedordostoevskiy4209 Год назад

    👍, когда js учил везде читал, что там ООП не то. Начал питон смотреть👀-и тут какое-то не то😂. А где то?

    • @PythonRussian
      @PythonRussian  Год назад +1

      как ни странно -в эрланге, причем эрланг не ооп, а функциональный язык =) По крайней мере все по заветам Алана Кея -объекты независимы и обмениваются сообщениями, внутрь друг другу никто не лезет. Я не знаю ООП языков, которые так реализованы, кроме Смолтолка.

  • @swaytornado8327
    @swaytornado8327 Год назад +1

    почему-то все определяют объект, как некая сущность, но это не так, объект - это адрес в памяти, или сама память. объект не будет объектом, пока он не появится в памяти, но не сущность какая-то, как все привыкли называть. Это то же самое, что ключевое слово self, это некая договорённость между программистами, при таких определениях теряется весь смысл того или иного объекта, оператора, ключевого слово. нет конкретных определений, нет четкого понимания о чем идет речь, и что и как называется.

    • @PythonRussian
      @PythonRussian  Год назад

      единственный способ это изменить -снять видео или написать книгу где вы донесете всем как на самом деле нужно и почему.

  • @АРТЕМИЙДАДЫКОВ
    @АРТЕМИЙДАДЫКОВ Год назад

    А зачем писать:
    if __name__ == ‘__main__’ ?

  • @dmzeus86
    @dmzeus86 2 года назад +2

    Человеку не может быть 0 лет?) Как же быть младенцам? :)

    • @PythonRussian
      @PythonRussian  2 года назад +7

      младенцам -расти и развиваться! Нефиг в нашем приложении регистрироваться

  • @Akkaunt__Yerjan
    @Akkaunt__Yerjan Год назад

    18:09 а ведь кортеж относится к неизменяимым типам данных, к ООП он не относится или как???или кортеж отдельная история...

    • @PythonRussian
      @PythonRussian  Год назад

      не понял ваш вопрос. Да -кортеж это неизменяемая структура данных. Что значит относится ли он к ООП? кортеж это тоже объект своего класса, его отличие только в том что все свои данные он получает при инициализации и больше не меняет. ТО есть его состояние неизменно.

    • @Akkaunt__Yerjan
      @Akkaunt__Yerjan Год назад

      @@PythonRussian то есть кортеж это СТРУКТУРА ДАННЫХ, а ООП это классы?

    • @Akkaunt__Yerjan
      @Akkaunt__Yerjan Год назад

      Надеюсь правильно сформулировал мысли

    • @PythonRussian
      @PythonRussian  Год назад +1

      @@Akkaunt__Yerjan еще раз -все в питоне является объектом. Кортеж это объект класса tuple, который реализует неизменяемую структуру данных. ООП - это парадигма, способ решения задач, в данном случае с помощью объектов.

    • @Akkaunt__Yerjan
      @Akkaunt__Yerjan Год назад

      @@PythonRussian спасибо, понял, с ноября месяца начал изучение пайтона с ютуб,но с алгоритмами пока не дружу,только шпаргалки переписываю стараюсь запомнить.

  • @ri6ik
    @ri6ik 2 года назад

    Да python предоставляет максимально развернутый код для взрослых людей. Но Это так себе достижение. Скорее недостаток. Это все равно, что говорить об отсутствии возможности купить машину, своем достижении в ходьбе пешком. В Java так же можно все писать на растпыр. Но Зачем? когда можно просто ограничить, ибо это нужно делать в данном коде. Исключая даже банальный , чел фактор.

    • @PythonRussian
      @PythonRussian  2 года назад

      не согласен и метафора не верна. Питон относится к пользователям как к взрослым людям: просто предупреждает, что вот тут опасно, но если тебе вдруг надо и ты понимаешь что делаешь -пожалуйста. Это например очень облегчает тестирование, так как даже без спецбибилиотек и рефлексии можно многое на лету подменить и получить. А добраться при особом желании можно и в джаве, несмотря на запреты.

    • @ri6ik
      @ri6ik 2 года назад

      @@PythonRussian не согласен. Если нельзя но очень надо, то костыль. Мало походит на решение взрослого человека. А вот, что бы инкапсулировать от остального кода есть модификация private. В питоне правельнее было бы назвать box. По тому что нет механизма сокрытия.

  • @МишаПиштой
    @МишаПиштой 2 года назад

    Куда пропал ?

    • @PythonRussian
      @PythonRussian  2 года назад +1

      никуда, работы много, а времени мало, пока не могу выделить на продолжение

    • @МишаПиштой
      @МишаПиштой 2 года назад

      @@PythonRussian будем ждать с нетерпениям)

  • @ukratitelkisok9726
    @ukratitelkisok9726 2 года назад

    А вы менторством не занимаетесь? Я щас именно про менторство, а не обучение как в школе

    • @PythonRussian
      @PythonRussian  2 года назад

      когда то занимался, сейчас катастрофически не хватает времени, увы.

    • @ukratitelkisok9726
      @ukratitelkisok9726 2 года назад

      @@PythonRussian а вы сами в сфере автотестирования работаете или разработке?

    • @PythonRussian
      @PythonRussian  2 года назад

      @@ukratitelkisok9726 было разное в карьере, конкретно сейчас на стыке тестирования и МЛ, и код писать надо и тесты и CI\CD подкручивать. Скучать не приходится.