Monkey patching — это практика динамического изменения класса, модуля или объекта во время выполнения программы — без изменения исходного кода.
В примере ниже исходный метод greet заменяется новой функцией во время выполнения:
class MyClass:
def greet(self):
return "Hello"
def new_greet(self):
return "Hi there"
MyClass.greet = new_greet # Monkey-patched
После этого присваивания все экземпляры MyClass будут использовать new_greet вместо исходного метода.
Monkey patching — это мощная, но рискованная техника. Её следует использовать осторожно — в идеале ограничиваясь тестовыми окружениями с помощью инструментов вроде unittest.mock — вместо того чтобы применять её как универсальное решение в продакшн-коде.
Monkey patching модифицирует класс или модуль во время выполнения без необходимости изменять исходный файл кода.
Новый — ещё не проверен сообществом
Вы