属性__dict__
には、ユーザー定義の属性が含まれています。私たちは空のクラスの__dict__
を印刷する場合でも、私もなるだろう:Python __dict__
__dict__
属性にPythonがあらかじめ入力されている
__module__
__dict__
__weakref__
__doc__
。
__base__
と__class__
は、クラスオブジェクトタイプのPython定義属性ですが、__dict__
には含まれていません。
どのダンダー属性がオブジェクト__dict__
に含まれているかを指定するルールはありますか?
ご回答ありがとうございます@Martijn。とても役に立ちました。 –
['__bases__'は書き込み可能です](https://ideone.com/Qv2EHe)(少なくとも、' __doc__'は書き込み可能です)。これは記述子なので、 'type .__ setattr__'にはうまく収まらない余分な処理が必要となるため、クラスのメモリレイアウトの専用スロットに基底のデータを格納する方が便利です(さらに効率的です)それを関連する辞書に入れるのではなく。 – user2357112
@ user2357112:はい、もちろん、言い回しを更新しました。 –