PythonのSTR()とのrepr()関数の差

Pythonは文字列に任意の値への道を持っている:それは()またはSTR()関数とrepr渡します。

    STR()関数は、人間が読める形式に適した値に変換するために使用され、フォームに変換するためのrepr()はインタプリタによって読み取ら。

数値型、リスト型、STRとのrepr加工方法についても同様である、文字列型、STRと異なる方法を処理するためのrepr方法。

文字列を取得するためのrepr()関数は、多くの場合、開発及び利用のデバッグの段階のために、より親しみやすいPython用のオブジェクト、のrepr()の入力を取得するために使用することができます。典型的には、OBJ ==評価(のrepr(OBJ))この式が成立します。

>>> obj = 'I love Python'
>>> obj = = eval ( repr (obj))
True

 そして、str印刷用()関数この関数を行い、STR()関数()出力

1 >>> OBJ = ' 私は、Pythonを愛する' 
2 >>> OBJ == のeval(のrepr(OBJ))
 3  4 >>> OBJ == のeval(STR(OBJ))
 5  トレースバック(最新の呼び出しの最後):
 6    ファイル" <STDIN> "、行1、、<モジュール>
 7    ファイル" <文字列> "、1行目
 8は、     私は、Pythonを愛する
 9           ^
 10でSyntaxError:無効な構文

(のpython3まで)のrepr()関数は次のとおりです。

1 >>>のrepr([0,1,2,3 ])
 2  ' [0、1、2、3] ' 
3 >>>のrepr(' ハロー' 4  " 'ハロー' " 
5   
6 >>> STR (1.0 / 7.0 7  ' 0.14285714285714285 ' 
8 >>>のrepr(1.0 / 7.0 9  ' 0.14285714285714285 '

コントラスト:

1 >>>のrepr(' こんにちは' 2  " 'ハロー' " 
3 >>> STR(' こんにちは' 4  ' ハロー'

一般的なケースの場合:

1 >>> = テスト()
 2 >>> A
 3 < __main__ 0x000001BB1BD228D0で.TESTオブジェクト>
 4 >>> プリント()
 5 < __main__ 0x000001BB1BD228D0で.TESTオブジェクト>
 6 >>>

メモリアドレス入力オブジェクトまたは我々は、リターンが対象である(オブジェクト)を印刷するかどうか
メソッド__str__ました:

1 >>> クラステスト():
 2      DEF  __str__ (自己):
 3          リターン " 你好" 
4  
5      
6 >>> = テスト()
 7 >>> A
 8 < __main__ 0x000001BB1BD22860で.TESTオブジェクト>
 9 >> > 印刷(A)
 10  你好
 11 >>>

我々は端末入力オブジェクトである場合、オブジェクトは自動的に__str__メソッドを呼び出しますプリントを使用し、メモリアドレスを返します
メソッド__repr__を:

1 >>> クラステスト():
 2      DEF  __repr__ (自己):
 3          リターン " ハロー" 
。4  
。5 >>> A = 試験()
 。6 >>> A
 7。 ハロー
 8。 >>> プリント(A)
 9。 あなた良い
 10 >>>

私たちは、端末内のオブジェクトを入力した場合、印刷が自動的にメソッド__repr__を呼び出します使い
簡単にデバッグするための鍵情報の一部を返すために一般的には、開発中のプログラマー、使用__repr__。

おすすめ

転載: www.cnblogs.com/bbzqz/p/11845195.html