Встречается на собеседованиях • сегодня
Как уменьшишь количество аргументов в __init__
Один из лучших способов — использовать паттерн Builder или Factory, но в Python часто применяют dataclasses или namedtuples для группировки аргументов.
Пример с dataclass:
python
from dataclasses import dataclass
@dataclass
class UserConfig:
name: str
age: int
email: str
class User:
def init(self, config: UserConfig):
self.name = config.name
self.age = config.age
self.email = config.email
config = UserConfig(name="Alice", age=30, email="alice@example.com")
user = User(config)
text
**Альтернатива — kwargs с валидацией:**
```python
class User:
def __init__(self, **kwargs):
required = {"name", "age", "email"}
if not required.issubset(kwargs):
raise ValueError("Missing required fields")
self.__dict__.update(kwargs)Также можно разбить логику на несколько методов или использовать частичные объекты (например, через functools.partial).

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