Daniel Ramos
Daniel Ramos

Reputation: 157

How can I hook a function in a python module?

I have a package in my virtual environment installed in the site-packages folder of it. In that package there is a module with a bunch of functions. I want to change one of these functions without touching the package code, so I want to make a hook of that module and then change/overwrite the function so it behaves in the way I want.

I don't know if this is even possible in Python (I'm new to the language).

Example:

I have a package called their_package in my site-packages folder, inside I have a module named whatever.py with the following code:

import sys
import os

def this_is_a_function(parameter):
    //whatever logic in here
    return result

What I want is to hook the whatever.py module so I can redefine the this_is_a_function to have a different logic. Is this possible? I would appreciate a lot a code sample!

Upvotes: 3

Views: 5101

Answers (1)

fredtantini
fredtantini

Reputation: 16556

You can redefine your function with:

import whatever

def this_is_a_function(parameter):
    pass

whatever.this_is_a_function = this_is_a_function

Upvotes: 5

Related Questions