次の Python コードについて考えてみましょう。
>>> l = [1,2,3]
>>> l.foo = 'bar'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
>>> setattr(l, 'foo', 'bar')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'foo'
これが機能しない理由を理解しています-機能list
がない__dict__
ため、属性をサポートしていません。
list
カスタム プロパティをサポートする推奨される代替リスト コレクション クラスがあるかどうか、またはこれを標準クラスに追加するための適切な Pythonic 'ハック' があるかどうかを知りたいです。
それとも、これは自分でロールする方が簡単な場合ですか?