在运行时使用python时,是否可以更改模块的_init__u;.py文件的内容?

在运行时使用python时,是否可以更改模块的_init__u;.py文件的内容?,python,Python,我需要更改psutil包中get_cpu_percent()中定义的round函数的精度值。有什么方法可以改变这一点吗?您可以通过在自己的模块中将psutil.Process子类化来实现,然后重写该方法,例如 class MyProcess(psutil.Process): def get_cpu_percent(self, interval=0.1): return 42 但是,为了更改舍入,您必须复制大量代码,因为它硬编码为psutil 如果您不需要get\u cp

我需要更改psutil包中get_cpu_percent()中定义的round函数的精度值。有什么方法可以改变这一点吗?

您可以通过在自己的模块中将
psutil.Process
子类化来实现,然后重写该方法,例如

class MyProcess(psutil.Process):
    def get_cpu_percent(self, interval=0.1):
        return 42
但是,为了更改舍入,您必须复制大量代码,因为它硬编码为
psutil

如果您不需要
get\u cpu\u percent
方法的通用性,另一个选项就是在子类中定义一个新方法。你有一个
进程。首先要获得\u cpu\u次


Python是一种动态语言,允许您替换
psutil
类中的原始实现,但您应该问问自己是否真的需要它。

您可以在Python中使用monkeypatch;
psutils.Process.cpu_percent()
方法也不例外。但是您必须将整个方法源复制到替换中。不打补丁就重新实现方法不是更容易吗?