2009-06-08 63 views
6

假設我有一個Python類,我想添加一個額外的屬性。在Python中修補類

import path.MyClass 
MyClass.foo = bar 

,並使用類似之間的任何差別:

import path.MyClass 
setattr(MyClass, 'foo', bar) 

如果不是,爲什麼人們似乎做第二而不是第一? (這裏http://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html EG)(與SETATTR你可以使用一個變量的屬性名稱)

+1

爲什麼不用更多的方法更新你的類的定義?爲什麼所有這些「神奇」的東西,當你可以簡單地編輯類定義? – 2009-06-08 12:28:23

+0

在我問這個問題時,我遇到了一個特殊的問題,那就是來自一個我們不想改變的圖書館;我們無法將其細分。雖然一般同意。 – interstar 2009-06-09 09:50:58

回答