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

Какие плюсы и минусы monkey patching

Плюсы:

  • Гибкость: Позволяет модифицировать поведение классов/модулей в runtime без изменения исходного кода.
  • Быстрое прототипирование: Удобно для тестов или временных исправлений.
  • Расширение стороннего кода: Можно добавить функциональность в библиотеки, которые нельзя изменить напрямую.

Минусы:

  • Неочевидность: Изменения не видны в исходном коде, что усложняет поддержку.
  • Хрупкость: Может сломаться при обновлении зависимостей, если патч завязан на внутренней реализации.
  • Побочные эффекты: Глобальные изменения влияют на весь код, использующий модифицированный объект.

Пример:

python
class Original:
    def method(self):
        return "original"

def patched_method(self):
    return "patched"

Original.method = patched_method  # Monkey patch
obj = Original()
print(obj.method())  # Выведет "patched"

Используйте осторожно, только когда альтернативы хуже.

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

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

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

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