永続的なオブジェクトと__Repr__
-
29-09-2019 - |
質問
を処理するための最良の方法は何ですか __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, ...)
.
所属していません StackOverflow