ホームページ >バックエンド開発 >Python チュートリアル >Python クラス インスタンスの文字列表現をカスタマイズするにはどうすればよいですか?

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 04:51:11143ブラウズ

How Can I Customize the String Representation of Python Class Instances?

クラス インスタンスの文字列表現のカスタマイズ

クラスのインスタンスを印刷する場合、デフォルトの出力は通常、<__main__.ClassName object at 0xXXXXXXXX> のようになります。限られた情報。印刷時にクラス インスタンスがどのように表示されるかをカスタマイズするには、文字列表現の概念を理解することが不可欠です。

文字列表現メソッド

Python には、クラスとオブジェクトの文字列表現を制御するための 2 つのメソッドが用意されています。

  • __str__: print() を使用するときにインスタンスを表示する方法を定義します。 function.
  • __repr__: repr() 関数を使用するとき、または対話型プロンプトでインスタンスを表示する方法を定義します。

文字列表現のオーバーライド

クラス インスタンスの文字列表現を使用する場合は、クラス定義内でこれらのメソッドをオーバーライドする必要があります。例:

class Test:
    def __str__(self):
        return "Customized string representation"

__str__ のカスタム実装を提供すると、Test クラスのインスタンスで print() を呼び出すときに出力を制御できます。

両方の文字列表現メソッドのオーバーライド

場合によっては、印刷やデバッグの目的で別の表現を提供したい場合があります。このシナリオでは、クラス定義内で __str__ と __repr__ の両方をオーバーライドできます。

class Test:
    def __str__(self):
        return "User-friendly representation"

    def __repr__(self):
        return "Technical representation for debugging"

この実装では、print() はユーザーフレンドリーな表現を表示し、対話型プロンプトとデバッグ ツールは技術的な表現を表示します。

文字列表現メソッドの使用

カスタム文字列表現を定義したら

  • カスタム文字列表現を印刷するには:
print(instance_name)
  • 対話型プロンプトで技術的な文字列表現を表示するには、またはデバッグ ツール:
repr(instance_name)

__str__ をオーバーライドすることにより、 __repr__ を使用すると、クラス インスタンスの出力を特定の要件に合わせて調整し、さまざまな目的に役立つ情報を提供できます。

以上がPython クラス インスタンスの文字列表現をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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