Вопрос

Что было бы лучшим способом справиться __repr__() Функция для объекта, который станет постоянным? Например, тот, который представляет строку в базе данных (реляционная или объект).

Согласно документам Python, __repr__() следует вернуть строку, которая воссоздает объект с помощью объекта eval() таково (примерно) eval(repr(obj)) == obj, или записка в скобках для неточных представлений. Обычно это означало бы сброс всех данных, которые не могут быть восстановлены объектом в строку. Однако для постоянных объектов, воссоздание объекта может быть таким же простым, как извлечение данных из базы данных.

Таким образом, для таких объектов все данные объекта или просто первичный ключ в __repr__() нить?

Это было полезно?

Решение

repr должен вернуть строку, которая воссоздает объект с помощью оценки

Это законно для простых типов, таких как int или string или float, но не используется для многоцелевого объекта DB с скажем 15+ столбцов

Например, если бы у меня был класс, представляющий цену, было бы разумно сделать __repr__ Покажите основные характеристики этого: количество и валюта

def __repr__(self):
   return '%s %s'%(self.amount,self.currency)

Другие советы

Как получить его из базы данных, как правило, неинтересно. Вернуть путь, чтобы воссоздать объект с нуля, например, SomeModel(field1, field2, ...).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top