以下の例では、attributeが存在するにx
もかかわらず、オブジェクトのスロットからアクセスされます(これは典型的またはおそらく有用なケースではありませんが、私は興味があります):x
__dict__
>>> class C(object):
... __slots__ = 'x'
...
>>> class D(C):
... pass
...
>>> obj = D()
>>> obj.x = 'Stored in slots'
>>> obj.__dict__
{}
>>> obj.__dict__['x'] = 'stored in __dict__'
>>> obj.x
'Stored in slots'
このアクセス順序 (スロットが最初) は文書化された動作ですか? または単に実装の詳細ですか?