【问题标题】:How can I hook a function in a python module?如何在 python 模块中挂钩函数?
【发布时间】:2014-05-20 22:16:12
【问题描述】:

所以我的虚拟环境中有一个包安装在它的 site-packages 文件夹中。 在那个包中有一个带有一堆函数的模块,我想在不接触包代码的情况下更改其中一个函数,所以我想对该模块进行挂钩,然后更改/覆盖该函数,使其行为方式我要。

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

例子:

我的站点包文件夹中有一个名为 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 解释器会话挂钩它吗?

标签: python module package


【解决方案1】:

您可以使用以下方法重新定义您的功能:

import whatever

def this_is_a_function(parameter):
    pass

whatever.this_is_a_function = this_is_a_function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2020-03-24
    • 2020-12-11
    • 2023-04-06
    • 2022-01-23
    相关资源
    最近更新 更多