Встречается на 1% собеседований по Python

Как можно отменить создание экземпляра класса

В Python можно отменить создание экземпляра класса через переопределение метода __new__ или вызов исключения в __init__.

1. Через __new__
Метод __new__ вызывается до __init__ и может вернуть None или другое значение вместо экземпляра:

python
class NoInstance:
    def __new__(cls):
        return None

obj = NoInstance() # obj будет None

text

**2. Через исключение в `__init__`**  
Можно запретить создание объекта при определенных условиях:
```python
class Restricted:
    def __init__(self):
        raise ValueError("Создание экземпляра запрещено")

# Вызовет исключение:
# obj = Restricted()

3. Абстрактный класс
Использование @abstractmethod из модуля abc также предотвращает создание экземпляров, если не реализованы все абстрактные методы.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы