簡體   English   中英

Python:重寫第三方模塊方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM