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 are the different types of optimization algorithms used in deep learning?

What are the different evaluation metrics used in machine learning?

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