ホームページ > バックエンド開発 > Python チュートリアル > Python で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法

Python で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法

WBOY
リリース: 2023-08-21 22:55:54
オリジナル
1326 人が閲覧しました

Python で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法

Python で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法

Python では、各オブジェクトは、内容を表示するを使用して文字列表現を持ちます。印刷するときのオブジェクトの。多くの場合、オブジェクトのデフォルトの文字列表現はニーズを満たしません。オブジェクトの文字列表現をカスタマイズするには、Python の __str__() 関数を使用できます。

__str__() 関数は、オブジェクトを文字列に変換するために使用される特別なメソッドです。オブジェクトを出力すると、Python は自動的にオブジェクトの __str__() 関数を呼び出し、その戻り値を文字列として出力します。

これは、Python で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法を示す簡単な例です。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)
ログイン後にコピー

上記のコードでは、という名前の A クラスを定義します。人物。名前と年齢という 2 つのプロパティがあります。クラスで __str__() 関数を定義し、オブジェクトの属性値を含む書式設定された文字列を返します。

パーソン オブジェクトを作成して出力すると、Python は自動的にオブジェクトの __str__() 関数を呼び出し、その戻り値を出力します。出力結果は次のようになります:

Person(name=Tom, age=25)
ログイン後にコピー
ログイン後にコピー

__str__() 関数を定義すると、オブジェクトの属性値をより直感的な方法で表示できるため、プログラムのデバッグと理解が容易になります。独自のニーズに応じて __str__() 関数の文字列形式をカスタマイズし、出力されるコンテンツを正確に制御できます。

__str__() 関数に加えて、Python は別の特別なメソッド __repr__() も提供します。 __repr__() メソッドによって返される文字列は、オブジェクトの作成に使用できる有効な Python 式である必要があります。 __str__() 関数を定義しない場合、Python はデフォルトでオブジェクトの __repr__() 関数を呼び出してオブジェクトを出力します。

これは、__repr__() メソッドの使用方法を示す例です。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person(name={self.name}, age={self.age})"

person = Person("Tom", 25)
print(person)
ログイン後にコピー

このコードは、前のコード例とほぼ同じですが、唯一の違いは、__repr__() を使用することです。 __str__() メソッドの代わりにメソッドを使用します。出力は同じです:

Person(name=Tom, age=25)
ログイン後にコピー
ログイン後にコピー

__str__() メソッドは主にオブジェクトの説明的な文字列を提供するために使用され、__repr__() メソッドは主にオブジェクトの文字列を提供するために使用されることに注意してください。オブジェクトを再構築する文字列。実際の開発では、ニーズに応じて使用するメソッドを選択したり、2 つのメソッドを同時に定義してより包括的な文字列表現を提供したりできます。

以上がPython で __str__() 関数を使用してオブジェクトの文字列表現を定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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