处理持久化对象的 __repr__() 函数的最佳方法是什么?例如,表示数据库中的一行(关系或对象)。
根据 Python 文档,__repr__() 应该返回一个字符串,该字符串将使用 eval() 重新创建对象,这样(大致)eval( repr(obj)) == obj,或用于不精确表示的括号表示法。通常这意味着将对象无法重新生成的所有数据转储到字符串中。然而,对于持久对象,重新创建对象可能就像从数据库中检索数据一样简单。
那么,对于这样的对象,所有对象数据还是 __repr__() 字符串中的主键?
请您参考如下方法:
repr should return a string that would re-create the object with eval
这对于像 int 或 string 或 float 这样的简单类型是合法的,但不适用于具有 15 列以上的多列 DB 对象
例如,如果我有一个代表价格的类,那么让 __repr__ 显示它的主要特征是合理的:金额和货币
def __repr__(self):
return '%s %s'%(self.amount,self.currency)
