印刷時のクラス インスタンス表現のカスタマイズ
クラスのインスタンスを印刷しようとすると、メモリなどのデフォルトの表現が表示される場合があります。住所。クラス インスタンスの印刷外観をカスタマイズするには、__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 サイトの他の関連記事を参照してください。