如何重写不在类中的核心python函数

2024-06-07 13:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一些以前编写的代码,这些代码对python2.7发行版的核心库中的一些函数进行了更改。为了使用我们的修订版,我们现在将python2.7库指向我们自己的库。 我希望避免使用我们自己的Python2.7包,并在保留所做更改的同时移回标准发行版。变化不多,misc中有几个函数/实用程序.py以及一些类方法。 通过扩展类,类方法应该很容易修复。但是,我不知道如何对原始函数执行该操作。你知道吗

例如,功能misc发生变化/实用程序.py你知道吗

def call(*args, **kwds):
    return subprocess.call(*alist, **kwds)

如果我想改变这个函数,并让所有对它的调用都切换到我的函数,是否可以这样做。那怎么办呢。你知道吗


Tags: 方法函数代码py功能实用程序核心标准
1条回答
网友
1楼 · 发布于 2024-06-07 13:33:58

要回答您的直接问题,您可以create a patch,然后将其应用于源代码。这将使您的修改与原始源代码分开。你知道吗

但是,我强烈地坚持,如果你这样做,你运行test suite,以确保你的补丁不会破坏其他东西。你知道吗

如果您希望所有应用程序都运行在自己的修补版Python上,这是最可移植的方法。你知道吗

如果您对自己的应用程序有此要求,则可以根据您的要求执行以下任一操作:

  1. 将修改后的目录附加到路径。您可以通过创建sitecustomize.py文件as detailed in the documentation来实现这一点。此文件将在每次Python调用时加载,并应用您的自定义设置。然后可以使用自定义版本对内置进行阴影处理。

  2. 对于应该随修改一起运行的代码,您可以通过在源目录中隐藏它们来添加自己的内置自定义项。由于工作目录是Python搜索的第一个地方,因此将使用定制的内置版本。然后可以将其打包,以便可以使用普通的分发工具,从而使您的修改具有可移植性。

相关问题 更多 >

    热门问题