![](/img/trans.png)
[英]Python how to override a method defined in a module of a third party library
[英]Python: override a third party module method?
所以我使用的是我安裝的第三方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'
>>>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.