如何在Python模块中挂钩函数?

问题描述 投票:0回答:1

我的虚拟环境中有一个包安装在它的

site-packages
文件夹中。 在该包中有一个具有许多功能的模块。我想在不接触包代码的情况下更改其中一个函数,因此我想对该模块进行挂钩,然后更改/覆盖该函数,使其按照我想要的方式运行。

我不知道这在 Python 中是否可行(我是该语言的新手)。

示例:

我的 site-packages 文件夹中有一个名为 Their_package 的包,里面有一个名为

whatever.py
的模块,其中包含以下代码:

import sys
import os

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

我想要的是挂钩

whatever.py
模块,这样我就可以重新定义
this_is_a_function
以获得不同的逻辑。这可能吗?我非常感谢代码示例!

python module package
1个回答
4
投票

您可以使用以下方式重新定义您的函数:

import whatever

def this_is_a_function(parameter):
    pass

whatever.this_is_a_function = this_is_a_function
© www.soinside.com 2019 - 2024. All rights reserved.