我有一個類,位於一個單獨的模塊中,我無法更改。Monkey-patch Python class
from module import MyClass
class ReplaceClass(object)
...
MyClass = ReplaceClass
這不會改變MyClass在其他地方,但這個文件。但是,如果我要添加這樣的方法
def bar():
print 123
MyClass.foo = bar
這將工作,foo方法將在其他地方提供。
如何完全替換類?
+1更快。只要確保它在任何使用'module的導入之前運行。MyClass' – aaronasterling 2010-09-21 23:32:07
速度越快越不正確,但我並不認爲這需要額外的解釋。一旦你看到如何去做,差異應該是非常明顯的。 – 2010-09-21 23:37:24
確保您是導入課程的「第一個」。已經引用「舊」類不會被替換! – 2010-09-22 06:20:53