Python組み込み関数 - repr & str
repr & str
repr(object) & str(object)
変数値を文字列に変換する2つのメカニズム: 前者は精度をターゲットにし、後者は可読性をターゲットにします
repr(object)オブジェクトを表す印刷可能な文字列を返します。
これは、変換(バックティック ``)によって得られた結果と一致します。
この操作は通常の機能としても利用できるので、場合によっては便利です。
ほとんどの型では、この関数は文字列を返そうとします。eval() に渡されると、同じオブジェクトが生成されます。
(つまり、eval(repr(object)==object)。それ以外の場合は、山括弧で囲まれた文字列が生成されます。
文字列には、オブジェクトの型名と、通常はオブジェクト名やオブジェクトのアドレスなどの追加情報が含まれます。
クラスは、__repr__() メンバー関数
str(object) を再定義することで、独自のインスタンスの戻り値を制御できます。オブジェクトを表す印刷可能な文字列を返します。
文字列の場合、それ自体を返します。
str(object) は eval() に渡された文字列を返そうとしないことです。印刷可能な文字列を返すことです。
パラメータが指定されていない場合は、空の文字列が返されます(クラスと同様に、その動作は __str__() メンバーを通じて制御できます)>>> print repr("hello world!")
'hello world!'
>>> print repr(10000L)
10000L
>>> print str("hello world!")
hello world!
>>> print str(10000L)
10000
>>> temp = 42
>>> print "the temperature is "+temp
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
print "the temperature is "+temp
TypeError: cannot concatenate 'str' and 'int' objects
>>> print "the temperature is "+ `temp`
the temperature is 42
>>> print "the temperature is " + repr(temp)
the temperature is 42