Python クラスの文字列表現を変更するにはどうすればよいですか? [重複] 質問する

Python クラスの文字列表現を変更するにはどうすればよいですか? [重複] 質問する

Java では、クラスの メソッドをオーバーライドできますtoString()。すると、Java の print 関数は、その によって定義されたオブジェクトの文字列表現を出力しますtoString()。Java の に相当する Python はありますかtoString()?

たとえば、PlayCard クラスがあります。PlayCard のインスタンス c があります。次のようになります。

>>> print(c)
<__main__.Card object at 0x01FD5D30>

しかし、私が望んでいるのは次のようなものです:

>>> print(c)
A♣

クラス インスタンスの文字列表現をカスタマイズするにはどうすればよいですか?

私はPython 3.xを使用しています

ベストアンサー1

Java に最も近いのは、クラスにtoString実装することです。クラス定義に以下を追加します。__str__

def __str__(self):
     return "foo"

デバッグを支援するために実装することもできます__repr__

詳細については、こちらをご覧ください:

おすすめ記事