ホームページ >バックエンド開発 >Python チュートリアル >クラスインスタンスのカスタマイズされた印刷出力のために `__str__` と `__repr__` をオーバーライドするにはどうすればよいですか?

クラスインスタンスのカスタマイズされた印刷出力のために `__str__` と `__repr__` をオーバーライドするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-03 04:45:38503ブラウズ

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

print() を使用してクラス インスタンスの文字列表現をカスタマイズする方法

クラスのインスタンスを印刷するとき、デフォルトの動作では多くの場合、オブジェクトの記憶場所。文字列表現をカスタマイズし、印刷時に表示される内容を制御するには、str と __repr__ という 2 つの特別なメソッドを実装できます。

__str__: 人間が判読できる文字列表現の定義

str メソッドは、一般的なオブジェクトの文字列表現を定義します。 使用。これは、オブジェクトに対して print() または str() を呼び出すと呼び出されます。 __str__ をオーバーライドすることで、印刷時に表示されるカスタム出力を定義できます。

__repr__: デバッグ用の文字列表現の定義

reprメソッドは、デバッグを目的とした文字列表現を定義します。これは、オブジェクトに対して repr() を呼び出すとき、または str__ を定義しない場合に呼び出されます。 __repr 表現は、オブジェクトに評価される有効な Python 式である必要があります。

クラス インスタンスの文字列表現をカスタマイズするには:

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return "member of Test"

    def __repr__(self):
        return "Test()"

上記の例では:

  • str メソッドは、オブジェクトを印刷するときに、人間が判読できる文字列「member of Test」を返します。
  • repr メソッドは、有効な Python 式「Test」を返します。 ()" を指定すると、オブジェクトが再作成されます。

このインスタンスを出力すると、 class:

t = Test()
print(t)

コンソールに「テストのメンバー」が表示され、カスタムで意味のある表現が提供されます。

以上がクラスインスタンスのカスタマイズされた印刷出力のために `__str__` と `__repr__` をオーバーライドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。