TGViewer
Python Lounge: работа и стажировки для программистов Python Lounge: работа и стажировки для программистов @python_lounge · 3.72K subscribers
Post #1016 1.4K
Паттерн проектирования Singleton

Одиночка или же синглтон
– это паттерн проектирования, описывающий объект, у которого имеется один единственный экземпляр.

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

new__(cls, *args, **kwargs) –– вызывается для создания экземпляра класса, перед вызовом __init. На вход первым аргументом метод принимает сам класс, а возвращать должен уже экземпляр (даже можно экземпляр и другого класса).

class Singleton:
instance = None

def __new__(cls):
if cls.instance is None:
cls.instance = super().__new__(cls)

return cls.instance

Здесь мы проверяем, есть ли значение у атрибута instance. Если нет, то присваиваем атрибуту экземпляр этого же класса. А если уже экземпляр создан, то просто его возвращаем.

То есть при вызове конструктора класса Singleton, будет возвращаться один и тот же объект из памяти.

a = Singleton()
b = Singleton()

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

print(a is b) # True
More from @python_lounge
  1. Jul 27, 2026Промпт-инженер для AI-фото в Onephoto Опыт с нейросетями не обязателен, важнее насмотренно…
  2. Jul 23, 2026Представитель в Т-Банк Отклик в 1 клик Идеальный вариант подработки/работы! Среднее вознаг…
  3. Jul 15, 2026Менеджер по продажам Мы занимаемся профессиональным рекрутингом для Министерства обороны Р…
  4. Jul 9, 2026Media Buyer / Performance Marketer (Meta* Ads) — eCommerce / Digital Products Мы — MotionP…
  5. May 26, 2026Специалист техподдержки в Mailganer Мы развиваем кросс-канальную платформу рассылок для ИТ…
  6. May 6, 2026Мы ищем Project / Product Manager’а, который способен взять проект целиком: от структуры и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →