Python:覆盖第三方模块方法



所以我使用的是我安装的第三方python模块。

我像这样启动它:

from module import SomeClass
sc = SomeClass()
sc.process(text);

process()正在使用同一模块中另一个类的另一种方法,称为get_Text()

我想修改 get_Text() 方法以返回修改后的字符串。

因此,sc.process(text)将返回与以前不同的结果。

我使用猴子补丁吗?它在这里如何工作?我是否复制粘贴get_text()方法并对其进行修改并在运行时修补它?

显式比隐式更好。在可能的情况下,只需使用继承来更改get_text的结果

class SomeOtherClass(SomeClass):
    def get_text(self):
        return someClass.get_text(self) + ' bar'

你为什么不试试这样,

>>> import os
>>> os.getcwd()
'/home/sivacn'
>>> 
>>> def getcwd():
...     return 'Patched'
... 
>>> os.getcwd = getcwd
>>> 
>>> os.getcwd()
'Patched'
>>> 

最新更新