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

Как уменьшишь количество аргументов в __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).

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

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

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

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