%rの意味は何ですか?質問する

%rの意味は何ですか?質問する

%r次の文のの意味は何ですか?

print '%r' % (1)

%s、、については聞いたことがあると思いますが%d%fこれについては聞いたことがありません。

ベストアンサー1

背景:

Python には、オブジェクトを文字列に変換するための組み込み関数が 2 つあります。strrepr.strは、人間が読みやすい、わかりやすい文字列です。reprオブジェクトの内容に関する詳細な情報を含むはずです (整数など、同じものを返すこともあります)。慣例により、別のオブジェクトに評価される Python 式がある場合、== はreprそのような式を返します。例:

>>> 印刷 repr('hi')
'hi' # ここでは引用符が使用されていることに注意してください...
>>> str('hi') を印刷します
こんにちは

オブジェクトに対して式を返すことが意味をなさない場合は、repr< および > 記号で囲まれた文字列を返す必要があります (例 ) <blah>

元の質問に答えると:

%s<->str
%r<->repr

加えて:

独自のクラスのインスタンスを文字列に変換する方法を制御できます。__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

おすすめ記事