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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-12-27 01:16:11982ブラウズ

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

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

クラスのインスタンスを出力する場合、デフォルトの出力ではクラス名とオブジェクト アドレスのみが提供されることがよくあります。 。この出力をカスタマイズして特定の属性を表示するには、クラスの 文字列表現 を定義できます。

strrepr を使用します。メソッド

Python は 2 つの特別なメソッドを提供します。 str と __repr__。オブジェクトの文字列表現を制御します。クラス内でこれらのメソッドをオーバーライドすることで、印刷時にクラスのインスタンスがどのように表示されるかを指定できます。

str Method

>str メソッドは、print 関数の使用時に表示される文字列表現を定義します。オブジェクトの文字列表現を返す必要があります。例:

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

repr メソッド

repr メソッドは、 repr() 関数が使用されるか、対話型プロンプトでオブジェクトが検査されます。オブジェクトの再作成に使用できる文字列表現を返す必要があります。例:

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

次の例を考えてみましょう:

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

    def __str__(self):
        return str(self.a)

    def __repr__(self):
        return "Test()"
このクラスのインスタンスを出力すると、次の出力が表示されます。

>>> print(Test())
foo

>>> repr(Test())
Test()
両方を定義することで、

str メソッドと repr メソッドを使用すると、クラス インスタンスの文字列表現を完全に制御できます。

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

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