Встречается на 1% собеседований по Python
Какие знаешь способы создания Singleton
В Python Singleton можно реализовать несколькими способами. Основные подходы:
- Через модуль (самый простой):
Модули в Python и так являются синглтонами по своей природе.
python
# singleton.py
class _Singleton:
pass
instance = _Singleton()- Через декоратор:
python
def singleton(cls):
instances = {}
def wrapper(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return wrapper
@singleton
class MyClass:
pass
text
3. **Через метакласс**:
```python
class SingletonMeta(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, **kwargs)
return cls._instances[cls]
class MyClass(metaclass=SingletonMeta):
pass- Через new:
python
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instanceВыбор способа зависит от конкретных требований. Модульный подход - самый простой, метаклассы дают больше контроля, а декораторы более гибкие.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы