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

Python でクラス インスタンスの出力をカスタマイズするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-17 01:11:25550ブラウズ

How can I customize the output of printing a class instance in Python?

印刷時のクラス インスタンス表現のカスタマイズ

クラスのインスタンスを印刷しようとすると、メモリなどのデフォルトの表現が表示される場合があります。住所。クラス インスタンスの印刷外観をカスタマイズするには、__str__ と __repr__ の概念を詳しく調べます。

__str__ メソッド

クラス内で __str__ メソッドを定義すると、印刷時にインスタンスをどのように表現するかを制御できます。このメソッドは、目的の表示テキストを含む文字列を返す必要があります。例:

>>> class Test:
>>>     def __init__(self):
>>>         self.a = 'foo'
>>>     def __str__(self):
>>>         return f"Test with a: {self.a}"

このクラスのインスタンスを出力すると、カスタム文字列表現が得られます:

>>> t = Test()
>>> t
Test with a: foo
>>> print(t)
Test with a: foo

__repr__ メソッド

__repr__ メソッドが定義されている場合、repr() を使用して印刷するときに __str__ よりも優先されます。関数または対話型プロンプトで。デバッグや再構築に適した、より詳細な表現を提供することを目的としています。 __str__ なしで __repr__ を定義すると、それが印刷表現としても機能します。

例:

>>> class Test:
>>>     def __init__(self):
>>>         self.a = 'foo'
>>>     def __repr__(self):
>>>         return f"Test(a={self.a})"

印刷時:

>>> t = Test()
>>> t
Test(a='foo')
>>> repr(t)
"Test(a='foo')"

概要:

クラス インスタンスの印刷表現をカスタマイズするには、目的の表示テキストの場合は __str__ メソッド、詳細な表現の場合は __repr__ メソッド。両方が定義されている場合、__str__ は印刷に使用され、__repr__ は repr() 関数に使用されます。

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

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