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

Как в коде уйти от Mixins

Использование миксинов может усложнить код, особенно при множественном наследовании. Вот альтернативы:

  1. Композиция - вместо наследования включайте нужное поведение через атрибуты:
python
class Logger:
    def log(self, msg):
        print(msg)

class Service:
    def __init__(self):
        self.logger = Logger()
text
def do_work(self):
    self.logger.log("Working")
text

2. **Декораторы** - для добавления функциональности:
```python
def log_methods(cls):
    for name, method in cls.__dict__.items():
        if callable(method):
            setattr(cls, name, logged(method))
    return cls
  1. Dependency Injection - передача зависимостей через конструктор:
python
class DataProcessor:
    def __init__(self, validator):
        self.validator = validator
  1. ABC (Abstract Base Classes) - для чёткого определения интерфейсов

Композиция обычно предпочтительнее наследования, так как делает код более гибким и тестируемым.

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

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

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

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