python - 如何 Hook python 模块中的函数?

标签 python module package

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

我不知道这在 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以具有不同的逻辑。这可能吗?我非常感谢代码示例!

提前谢谢您!:)

最佳答案

您可以通过以下方式重新定义您的函数:

import whatever

def this_is_a_function(parameter):
    pass

whatever.this_is_a_function = this_is_a_function

关于python - 如何 Hook python 模块中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22933287/

相关文章:

Python google drive API 下载,文件在哪里?

node.js - 在 node.js 中捕获 console.log?

apache - 在 CentOS 上安装 apache 模块

linux - 如何提取 rpm 的内容?

python - 在 docker 容器中运行时 Python 中的 SFTP key 错误

python - 在 Mac Snow Leopard 上安装 MySQL-python-1.2.3c1 时出现问题

python - 如何在此类外部使用类内部声明的变量?

python - 异常处理程序位于单独模块中的异常

javascript - 带有 coffeescript 的 meteor 包(以及继承和严格模式)

r - 如何安装从 CRAN 存档的软件包?