6

追加のプロパティを追加したい Python クラスがあるとします。

間に違いはありますか

import path.MyClass
MyClass.foo = bar

そして次のようなものを使用します:

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

?

そうでない場合、なぜ人々は最初の方法ではなく 2 番目の方法を使用するように見えるのでしょうか? (例: ここhttp://concisionandconcinnity.blogspot.com/2008/10/chaining-monkey-patches-in-python.html )

4

1 に答える 1

11

ステートメントは同等ですが、2 つの中で最も動的な選択であるため、setattr が使用される場合があります (setattr を使用すると、属性名に変数を使用できます)。

参照: http://docs.python.org/library/functions.html#setattr

于 2009-06-08T11:57:28.660 に答える