メタクラスを使用して Python クラスの文字列表現をカスタマイズするにはどうすればよいですか?
Nov 06, 2024 pm 02:58 PMクラスのカスタム文字列表現: Python 的なアプローチ
Python では、クラスに対して独自の文字列表現を定義すると、クラスの文字列表現をより詳細に制御できます。クラスが紹介されます。 <class '__main__.foo'> に似たデフォルトの表現とは異なり、より有益な、または視覚的に魅力的な表示を作成したい場合があります。この記事では、メタクラスを使用してクラスの文字列表現を調整する方法について説明します。
次のクラスについて考えてみましょう:
class foo(object): pass
ログイン後にコピー
デフォルトでは、foo を文字列に変換すると次の結果が得られます:
>>> str(foo) "<class '__main__.foo'>"
ログイン後にコピー
この表現をカスタマイズするには、クラスのメタクラス内で __str__() または __repr__() を実装できます。これらのマジック メソッドは、それぞれ、クラスの読み取り可能で明確な文字列表現を返す役割を果たします。
次の例は、メタクラスにカスタム __repr__() を実装する方法を示しています。
class MC(type): def __repr__(self): return 'Wahaha!' class C(object): __metaclass__ = MC print(C)
ログイン後にコピー
このコードは「ワハハ!」を出力します。クラス C を出力するとき。
読み取り可能な文字列化が必要な場合は、__str__ を使用します。明確な表現には __repr__ を使用します。 Python 3 では、次のようにクラス定義自体でメタクラスを指定する必要があります。
class MC(type): def __repr__(self): return 'Wahaha!' class C(object, metaclass=MC): pass print(C)
ログイン後にコピー
以上がメタクラスを使用して Python クラスの文字列表現をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

人気の記事
レポ:チームメイトを復活させる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
スプリットフィクションを打ち負かすのにどれくらい時間がかかりますか?
3週間前
By DDD
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
1週間前
By 尊渡假赌尊渡假赌尊渡假赌
ハローキティアイランドアドベンチャー:巨大な種を手に入れる方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7283
9


Java チュートリアル
1622
14


CakePHP チュートリアル
1342
46


Laravel チュートリアル
1259
25


PHP チュートリアル
1205
29

