5

printobject、 とはどう違いrepr()ますか? 異なるフォーマットで印刷されるのはなぜですか?

を参照してくださいoutput difference

>>> x="This is New era"
>>> print x             # print in double quote when with print()
This is New era

>>> x                   #  x display in single quote
'This is New era'

>>> x.__repr__()        # repr() already contain string
"'This is New era'"

>>> x.__str__()         # str() print only in single quote ''
'This is New era'
4

3 に答える 3

1

参照__repr__:

オブジェクトの「正式な」文字列表現を計算するために、repr() 組み込み関数および文字列変換 (逆引用符) によって呼び出されます。可能であれば、これは同じ値を持つオブジェクトを再作成するために使用できる有効な Python 式のように見えるはずです(適切な環境が与えられた場合)。

そして__str__

オブジェクトの「非形式的な」文字列表現を計算するために、str() 組み込み関数および print ステートメントによって呼び出されます。これは、有効な Python 式である必要がないという点で __repr__() とは異なります。代わりに、より便利で簡潔な表現を使用できます。

強調は私が追加しました。

于 2016-02-16T09:40:34.047 に答える
0

__str____repr__はどちらも、オブジェクトの文字列表現を取得するためのメソッドです。__str__はより短く、よりユーザーフレンドリーで__repr__あると考えられていますが、より詳細を提供することになっています。

ただし、Pythonでは、シングル クォーテーションとダブル クォーテーションに違いはありません。

于 2016-02-16T09:29:31.503 に答える