Pythonでは、オブジェクトをプリントするためにprint()
関数を使用します。しかし、クラスのインスタンスをプリントしようとすると、デフォルトではそのオブジェクトのメモリアドレスが表示されます。これは、多くの場合、開発者が期待する結果ではありません。
そこで、クラスのインスタンスをプリントしたときにカスタムの出力を得るためには、そのクラスに__str__
または__repr__
メソッドを定義します。
class Test:
def __init__(self):
self.a = 'foo'
def __str__(self):
return self.a
print(Test()) # Output: foo
上記の例では、Test
クラスに__str__
メソッドを定義しています。このメソッドは、クラスのインスタンスを文字列として表現する方法をPythonに教えています。そのため、print(Test())
を実行すると、__str__
メソッドが返す値(この場合は'foo'
)が出力されます。
- このように、Pythonでは
__str__
や__repr__
メソッドを使用して、オブジェクトのプリント出力をカスタマイズすることができます。これにより、デバッグ時に役立つ情報を簡単に取得できるようになります。