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!
-
How do you plan to use that hooked module later? Do you want to hook it only for one scenario (piece of logic), or for the whole Python interpreter session?Roman Bodnarchuk– Roman Bodnarchuk2014年04月08日 09:55:33 +00:00Commented Apr 8, 2014 at 9:55
-
Yes, there is a lbrary called wphooks for this purposeManuel Canga– Manuel Canga2025年12月12日 08:16:02 +00:00Commented Dec 12, 2025 at 8:16
1 Answer 1
You can redefine your function with:
import whatever
def this_is_a_function(parameter):
pass
whatever.this_is_a_function = this_is_a_function
2 Comments
this_is_a_function to have a different logic" as asked by the OP.pass instead of whatever the function did before. Obviously replace this with something more complex if that's what you want.