Встречается на собеседованиях • сегодня

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

В 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 также предотвращает создание экземпляров, если не реализованы все абстрактные методы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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