追加のプロパティを追加するPythonクラスがあるとします。Pythonでクラスをパッチする
import path.MyClass
setattr(MyClass, 'foo', bar)
:
は
import path.MyClass
MyClass.foo = bar
と同じようなものを使用しての間に違いはありますか?
もしそうでなければ、なぜ人々は最初のものよりも2番目のことをしているように見えますか? (例:ここではhttp://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html)
クラスの定義を追加の方法で更新しないのはなぜですか?クラス定義を編集するだけで、なぜこの "魔法のような"ものができますか? –
私がこれを尋ねたときの私の特に問題は、クラスは私たちが変更したくない図書館から来たものです。それをサブクラス化できませんでした。しかし一般的に同意する。 – interstar