テスト目的で動的属性の割り当てを試していたところ、次の動作が見つかりました。
>>> class Foo(object): pass
...
>>> bar = Spam()
>>> bar.a = 1
>>> spam = object()
>>> spam.a = 2
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'object' object has no attribute 'a'
派生クラスが正当な最初のバージョンであるのに、そうでない2番目の直接使用はobject
なぜですか?変数の代入の処理方法に明らかに関係するものを導出しても何も変更されていないので、私には少し奇妙に思えます。