Этот вопрос проверяет знание концепции миксинов и их использования для добавления функциональности классам через множественное наследование.
Миксин — это вспомогательный класс, предназначенный для добавления конкретной функциональности другим классам через множественное наследование. Миксины обычно не используются самостоятельно, а предназначены для совместного использования с другими классами.
Миксины представляют собой способ добавления функциональности через небольшие, специализированные классы. Они используются в связке с основными классами, чтобы не создавать слишком громоздкие иерархии наследования.
Пример:
class LoggingMixin:
def log(self, message):
print(f"[LOG]: {message}")
class BaseClass:
def do_work(self):
print("Doing work")
class DerivedClass(BaseClass, LoggingMixin):
def execute(self):
self.do_work()
self.log("Work executed")
obj = DerivedClass()
obj.execute()
# Вывод:
# Doing work
# [LOG]: Work executedМиксины часто применяются в веб-фреймворках для добавления специфичного поведения (например, проверка прав доступа, ведение журнала).