170 похожих чатов

Как вам реализация синглтона без метаклассов? фриковая или норм? class Singleton:

_instance_ptr = None

def __init__(self, a: int):
if self._instance_ptr.__dict__:
return
self.a = a

def __new__(cls, *args, **kwargs):
if not cls._instance_ptr:
obj = super().__new__(cls)
cls._instance_ptr = obj
return obj
return cls._instance_ptr

singleton = Singleton(10)
singleton_two = Singleton(5)

print(singleton.a)
print(singleton_two is singleton)

output:

10
True

15 ответов

5 просмотров

Мне нравится такая реализация: singleton = 5

lubaskinc0de-🎁 Автор вопроса
lubaskinc0de 🎁
не понял

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

lubaskinc0de-🎁 Автор вопроса
evle
Если нам понадобился синглтон, мы можем с тем же у...

я просто собираю паттерны в один репо, и хотел бы удостовериться что это норм реализация, not for production

lubaskinc0de-🎁 Автор вопроса
Artem
Есть же уже такие

ну я захотел свой

1. не потокобезопасен 2. надеюсь ты в курсе, что синглтон - антипаттерн 3. синглтон с параметром - это что-то странное

lubaskinc0de-🎁 Автор вопроса
Tishka17
1. не потокобезопасен 2. надеюсь ты в курсе, что с...

2 да, 3 - не знаю, не работал с синглтоном, было бы интересно узнать, 1 - почему? как исправить?

ага, если хочешь потокобезопасность придется. Осталось понять, что лок тоже надо как-то получить

lubaskinc0de 🎁
всм получить?

ну thread_lock - это что?

lubaskinc0de-🎁 Автор вопроса
Tishka17
ну thread_lock - это что?

глобал threading.Lock()

lubaskinc0de 🎁
глобал threading.Lock()

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

lubaskinc0de-🎁 Автор вопроса

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Всем привет!) я тут новенький и пытаюсь освоить evolution методом тыка. У меня при переходе между папками файлов выскакивают вот такие уведомления Можете подсказать как их от...
Диман Samoed
10
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Карта сайта