ホームページ > バックエンド開発 > Python チュートリアル > Python `str` と `repr`: オブジェクト表現の違いは何ですか?

Python `str` と `repr`: オブジェクト表現の違いは何ですか?

Mary-Kate Olsen
リリース: 2024-12-29 01:13:10
オリジナル
1022 人が閲覧しました

Python `str` vs. `repr`: What's the Difference in Object Representation?

str と __repr__: Python 表現の違いを明らかにする

str の違いPython の repr は、基本的な目的:

repr による明確なアイデンティティ

__repr__ は、その名前が示すように、オブジェクトの明確な「表現」を提供することを目的としています。その焦点は、後でまったく同じオブジェクトを再作成するために十分な情報を提供することにあります。デフォルトの実装は、クラス名と属性をパラメータ区切り文字で区切って返します。この形式により、結果を eval() で評価できるようになり、オブジェクトの再構成が可能になります。

str により人間が可読性を確保できます

一方、__str__ は、精度よりも人間の読みやすさを優先します。人間が理解しやすい文字列を生成することを目的としています。多くの場合、不必要な詳細が省略され、出力がより視覚的に魅力的になるようにフォーマットされる場合があります。

主な違い

  • repr は、明確な表現を目指しています。 str が目指すのは、
  • str はユーザー向けの出力を目的としていますが、repr はデバッグやオブジェクトのイントロスペクションに適しています。
  • repr は通常は役に立ちませんが、次の場合にデバッグに使用できます。 str が定義されていません。
  • コンテナ (リスト、辞書など) は、__str__ に含まれるオブジェクトの
  • repr を使用します。

最高実践

    オブジェクトを適切に識別できるように、カスタム クラスに対して常に
  • repr を定義します。
  • 必要な場合は
  • str のみを実装してください。 __repr__ とは異なる可能性がある人間が判読できる文字列表現。
  • 使用
  • repr の %r (repr() フォーマット) を使用して、明確な評価を確保します。
  • str で %s (str() フォーマット) を使用して、読みやすい文字列をフォーマットします。 .

以上がPython `str` と `repr`: オブジェクト表現の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート