Python: добавление полей к объектам динамически - PullRequest
9 голосов
/ 14 декабря 2010

Мне интересно, возможно ли добавлять поля к объектам динамически. Например, я хочу иметь возможность добавить что-то вроде:

user = object()
user.first_name = 'John'
user.last_name = 'Smith'

Когда я выполняю это в интерпретаторе командной строки Python, я получаю:

AttributeError: 'object' object has no attribute 'first_name'

Есть идеи?

Ответы [ 2 ]

16 голосов
/ 14 декабря 2010

Попробуйте это:

class Object:
    pass

obj = Object()
obj.x = 5
5 голосов
/ 14 декабря 2010

Вы не можете назначать атрибуты object экземпляров, подобных этому. Получите из object и используйте экземпляр этого класса.

...