Паттерн Singleton (Одиночка) в Python

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 มี.ค. 2023
  • Singleton (Одиночка) - это шаблон предоставления глобального доступа к состоянию, гарантируется, что объект всегда будет один и тот же.
    Нужен для одной точки доступа к ресурсам/данным и для того чтобы ресурсоемкие задачи сделать 1 раз
    Monostate - это шаблон предоставления глобального доступа к состоянию, объекты при этом могут быть разными.
    + плюсы: 1 раз выполняем тяжелые задачи, имеем 1 вход для всей системы
    - минусы: общесистемная глобальная переменная
    Модуль в python -это синглтон! Потому нам никуда от них не деться, даже если считать синглтон анти-паттерном
    👉Декоратор с параметрами • Декоратор с параметрами
    👍Первый декоратор, разбираемся с написанием • Первый декоратор, разб...
    Читать: www.oreilly.com/library/view/...
    Присоединяйтесь к помощи каналу, будет интересно)
    ✔️Бусти boosty.to/python_russian/donate
    ✔️Юмани 410011506612886
    Будь первым везде и всегда, включай уведомления о новых выпусках 🔔
    #Python #PythonRussian #PyCharm

ความคิดเห็น • 40

  • @PythonRussian
    @PythonRussian  ปีที่แล้ว +11

    Друзья, 60% моих зрителей не подписаны на канал, не жалейте 1 клика для продолжения съемок контента. Это вам ничего не стоит, а мне приятно. Спасибо!

    • @SoloveY1990
      @SoloveY1990 ปีที่แล้ว +5

      Все подписывайтесь! Нам очень нужно продолжение контента! 😊

    • @Anton16180
      @Anton16180 ปีที่แล้ว +2

      Поддерживаю. Видео про декораторы мне очень помогло в свое время

  • @Smnov
    @Smnov ปีที่แล้ว +8

    Паттерны, пошла жара. Максимальная поддержка автору

  • @IlyaIlya_lopkop
    @IlyaIlya_lopkop หลายเดือนก่อน +1

    Прошу продолжать делать видео по паттернам!

  • @databox4279
    @databox4279 9 ชั่วโมงที่ผ่านมา

    как всегда: контент пушка вышка. Огромная благодарность за труды.

  • @theserkot
    @theserkot 11 หลายเดือนก่อน +2

    Очень метко замечено про засыпание на 5й странице книги Банды Четырёх, и про то, что для реального усвоения нужна проблема... 100% совпадает с личным опытом ;)

  • @MRaynold
    @MRaynold 24 วันที่ผ่านมา +1

    Сразу вспомнил момент, когда (в детстве) нечаянно наступил на швабру.
    Как же мне пере#б@ло тогда по лбу... Ай-яй-яй-яй-яй. 😅😂

  • @exfell320
    @exfell320 ปีที่แล้ว +3

    Только начал изучить различные паттерны и тут этот замечательный ролик. Спасибо за ваши труды!

  • @altf4_so
    @altf4_so ปีที่แล้ว +3

    Благодарю ты действительно лучший !!

  • @Filinius1
    @Filinius1 ปีที่แล้ว +2

    Гениально!!
    Спасибо большое за материал.
    Очень доходчиво и понятно.

  • @y18kotov
    @y18kotov ปีที่แล้ว +5

    Отличная работа. Большое спасибо!

  • @doxyvan6770
    @doxyvan6770 ปีที่แล้ว

    Для подготовки к сессии самое то, спасибо вам за проделанный труд!!!

  • @golokwen7622
    @golokwen7622 ปีที่แล้ว +1

    Обожаю тебя! Стал спонсором! Не прекращай делать видео, пожалуйста

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว +1

      спасибо =) я и не собираюсь прекращать, единственное - часто делать не могу, занятость. А тем в питоне, о которых хотелось бы рассказать - очень много, постоянно приходится выбирать.

  • @Vladimir-bz9tg
    @Vladimir-bz9tg ปีที่แล้ว

    Спасибо Вам большое, очень полезно, информативно и понятно

  • @user-it3yo1sn6i
    @user-it3yo1sn6i ปีที่แล้ว

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

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

      да, моностейт это по сути взгляд на проблему с другой стороны, что порой бывает полезно

  • @GorArakelyan-no7mx
    @GorArakelyan-no7mx ปีที่แล้ว +1

    как всегда самый лучший

  • @nicksem8459
    @nicksem8459 6 หลายเดือนก่อน

    Круто Спасибо!

  • @parpermeter
    @parpermeter ปีที่แล้ว +2

    к хорошему качественному видео по программированию на языке python хочется писать хорошие комментарии)

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว +1

      не сдерживай себя)

  • @vedroidek
    @vedroidek ปีที่แล้ว

    День добрый! Давно искал подобный подход, который ровно ложится в голове. Спасибо Вам огромное!
    P.S. в надежде выйти на такой же уровень проектирования и программирования.

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

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

    • @vedroidek
      @vedroidek ปีที่แล้ว

      @@PythonRussian будут ли видео по асинхронности и многопоточности?

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

      @@vedroidek думаю можно как минимум обзорное про GILи потоки, а асинк отдельно

    • @vedroidek
      @vedroidek ปีที่แล้ว

      @@PythonRussian GIL в теории будет или разбор на плюсах? )))

  • @vitalii_myt
    @vitalii_myt ปีที่แล้ว

    Спасибо. Хорошие объяснения. Давайте еще про паттерны!
    Singletone.instance ведь можно заменить cls.instance ?

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

      заменить можно. Про паттерны не так просто снимать, потому что надо демонстрировать реальную проблему, понятную пользователям.

  • @kristinam2480
    @kristinam2480 9 หลายเดือนก่อน +2

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

  • @PureLeach
    @PureLeach ปีที่แล้ว

    Немного не понял в каких случаях лучше воспользоваться Monostate вместо Singleton. По идеи Singleton лучше тем, что он не будет занимать дополнительную память, в отличие от Monostate. А в чём тогда преимущество Monostate кроме того, что его легче написать?

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

      я скорее хотел показать, что существует второй взгляд на проблему. Да, синглтон всего 1 и значит не займет память, но и моностейт, поскольку разделяет одно и то же состояние займет лишь немногим больше. Алекс Мартелли указывал на то, что мы акцентируемся на том, что неважно, а именно на том чтобы был 1 объект, хотя по идее нам не это критично, а только состояние. Но конечно в проде лучше писать Синглтон, а не Моностейт, в силу того, что просто команда не поймет, ибо первый знают все, а второй во всей команде будешь знать только ты =)

    • @PureLeach
      @PureLeach ปีที่แล้ว

      @@PythonRussian Спасибо за ответ! Буду ждать другие видео про паттерны в python. Тема очень интересная.

  • @_radja
    @_radja ปีที่แล้ว

    А почему в классе Singleton, в методе __new__(), используется именно имя класса, а не ссылка на него в cls? В этом есть какой-то смысл или просто так?

    • @PythonRussian
      @PythonRussian  ปีที่แล้ว

      в этом есть смысл, попробуй понять в чем разница

    • @_radja
      @_radja ปีที่แล้ว

      @@PythonRussian насколько я понимаю, есть разница для наследования. В случае использования явной ссылки на Singleton, все сабклассы будут одним объектом, на которой указывает instance. Потому что мы обращались к конкретному классу, а cls это именно текущий класс. Но я не понимаю зачем это надо. Кажется если мы наследуемся от Singleton-а, то каждый из наследников должен быть самостоятельным классом с соответствующим паттерном. Или я что-то упускаю и не понимаю?

  • @mushroomhead4396
    @mushroomhead4396 ปีที่แล้ว

    😙

  • @user-mg8yq4xp1v
    @user-mg8yq4xp1v 8 หลายเดือนก่อน

    Monostate или Borg?

    • @PythonRussian
      @PythonRussian  8 หลายเดือนก่อน

      первое

    • @user-mg8yq4xp1v
      @user-mg8yq4xp1v 8 หลายเดือนก่อน

      @@PythonRussian между ними есть какая-то разница? Потому что мне показалось, что это название для одного и того же.