外部文件中的Python重新分配功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外部文件中的Python重新分配功能相关的知识,希望对你有一定的参考价值。

想象一下,我从Python包中导入了一个名为main_func()的函数,该函数调用了在该包的同一文件中定义的另一个函数called_func()

现在,在我的个人脚本中,我想呼叫main_func()。但有一点不同,当我运行此main_func()时,我希望它调用我个人修改的版本called_func()。此功能的修改版本在我的个人脚本文件中定义。

我该怎么做?

示例:]

来自程序包的脚本,名为package / functions.py

def main_func(a):
    return called_func(a)

def called_func(a):
    print(a)

个人脚本

from package.functions import main_func

def called_func(a):
    # My personally modified function
    print(a, a)

main_func('Test ')

如果运行脚本,将得到此输出Test

但是,我想获得Test Test

注意:我无法修改软件包文件...

答案

您可以monkey patch您的功能到模块中

monkey patch

礼物

import package.functions


def called_func(a):
    # your modified function
    print(a, a)


package.functions.called_func = called_func
main_func("Test ")

以上是关于外部文件中的Python重新分配功能的主要内容,如果未能解决你的问题,请参考以下文章

Flume-ng禁用自动加载配置文件功能

html 将以编程方式附加外部脚本文件的javascript代码片段,并按顺序排列。用于响应式网站,其中ma

片段中的Firebase数据不是持久的,会重新下载

在内部函数内部分配外部变量的python闭包

当 React 功能组件重新渲染时,它会重新分配分配的值和功能吗?

python python中的漂亮(或漂亮打印)JSON对象具有这一功能。在尝试了解什么时,我总是使用这个片段