Я возился с динамическими атрибутами, и я заметил, что не могу использовать атрибут __dict__, если я создал объект непосредственно из класса object(), но если я создам новый класс, являющийся прямым потомком объекта, я могу получить доступ к __dict__. Почему разница?
Примеры:
# This gives an AttributeError o = object() o.__dict__
# This works: prints {}
class myClass(object):
pass
o = myClass()
o.__dict__