如何使用元類別自訂 Python 類別的字串表示形式?

Barbara Streisand
發布: 2024-11-06 14:58:03
原創
928 人瀏覽過

How can I customize the string representation of Python classes using metaclasses?

類別的自訂字串表示形式:Pythonic 方法

在Python 中,為類別定義自己的字串表示形式可以更好地控制介紹了課程。與類似於 的預設表示不同,您可能想要建立資訊更豐富或視覺上更有吸引力的顯示。本文探討如何使用元類別自訂類別的字串表示形式。

考慮以下類別:

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)
登入後複製

這段程式碼將輸出「Wahaha!」當您列印類別 C 時。

如果您想要可讀的字串化,請使用 __str__;對於明確的表示,請使用 __repr__。 Python 3 要求您在類別定義本身中指定元類,如下所示:

class MC(type):
    def __repr__(self):
        return 'Wahaha!'

class C(object, metaclass=MC):
    pass


print(C)
登入後複製

以上是如何使用元類別自訂 Python 類別的字串表示形式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板