%r
次の文のの意味は何ですか?
print '%r' % (1)
%s
、、については聞いたことがあると思いますが%d
、%f
これについては聞いたことがありません。
ベストアンサー1
背景:
Python には、オブジェクトを文字列に変換するための組み込み関数が 2 つあります。str
対repr
.str
は、人間が読みやすい、わかりやすい文字列です。repr
オブジェクトの内容に関する詳細な情報を含むはずです (整数など、同じものを返すこともあります)。慣例により、別のオブジェクトに評価される Python 式がある場合、== はrepr
そのような式を返します。例:
>>> 印刷 repr('hi') 'hi' # ここでは引用符が使用されていることに注意してください... >>> str('hi') を印刷します こんにちは
オブジェクトに対して式を返すことが意味をなさない場合は、repr
< および > 記号で囲まれた文字列を返す必要があります (例 ) <blah>
。
元の質問に答えると:
加えて:
独自のクラスのインスタンスを文字列に変換する方法を制御できます。__str__
そして__repr__
方法。
class Foo:
def __init__(self, foo):
self.foo = foo
def __eq__(self, other):
"""Implements ==."""
return self.foo == other.foo
def __repr__(self):
# if you eval the return value of this function,
# you'll get another Foo instance that's == to self
return "Foo(%r)" % self.foo