質問

を処理するための最良の方法は何ですか __repr__() 永続的になるオブジェクトの関数?たとえば、データベース(リレーショナルまたはオブジェクト)内の行を表すもの。

Python Docsによると、 __repr__() オブジェクトを再作成する文字列を返す必要があります eval() そのような(ほぼ) eval(repr(obj)) == obj, 、または不正確な表現のブラケット表記。通常、これは、オブジェクトによって文字列に再生できないすべてのデータをダンプすることを意味します。ただし、オブジェクトを再作成する永続的なオブジェクトの場合、データベースからデータを取得するのと同じくらい簡単です。

したがって、そのようなオブジェクトの場合、すべてのオブジェクトデータまたは __repr__() ストリング?

役に立ちましたか?

解決

replはevalでオブジェクトを再作成する文字列を返す必要があります

これは、intやstringやfloatなどの単純なタイプには合法ですが、15列以上の列を備えたマルチコラムDBオブジェクトでは使用できません

たとえば、価格を表すクラスがあった場合、 __repr__ それの主な特徴を示す:金額と通貨

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

他のヒント

データベースからそれを取得する方法は、一般的に面白くありません。方法を返して、オブジェクトをゼロから再作成する SomeModel(field1, field2, ...).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top