Я испытывал динамическое назначение атрибутов для целей тестирования и обнаружили следующее поведение:Динамического атрибут назначение
>>> 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'
Почему первая версия с производным классом законна, но второе прямым использование object
не ? Мне кажется немного странным, потому что вывод не изменил ничего, что явно имеет отношение к тому, как обрабатывается переменная.
Этот вопрос может помочь: http://stackoverflow.com/q/1285269/1015178 –
Согласен. Я недостаточно тщательно проверял существующий вопрос. – phineas