Can you explain the concept of monkey patching in Python?

In the first example, we are going to demonstrate how to use monkey patching to add a new method to an existing class in Python.
class MyClass:
    def my_method(self):
        return "Original method"

def new_method(self):
    return "Patched method"

MyClass.my_method = new_method

obj = MyClass()
print(obj.my_method())

In this code snippet, we have a class MyClass with a method my_method . We define a new function new_method that we want to add to the MyClass class. By assigning new_method to MyClass.my_method , we effectively patch the class to include the new method. When we create an instance of MyClass and call my_method , it will now return "Patched method" instead of "Original method". In the second example, we are going to demonstrate how to use monkey patching to modify an existing method of a class in Python.
class MyClass:
    def my_method(self):
        return "Original method"

def patched_method(self):
    return "Patched method"

obj = MyClass()
obj.my_method = patched_method

print(obj.my_method())

In this code snippet, we have a class MyClass with a method my_method . Instead of modifying the class itself, we directly assign the patched_method function to the my_method attribute of an instance of MyClass . This effectively patches the method for that specific instance only. When we call my_method on the obj instance, it will now return "Patched method" instead of "Original method".

Comments

Popular posts from this blog

What is the difference between a module and a package in Python?

What are the different evaluation metrics used in machine learning?

Sorting Algorithms in Python? - with practical example