Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menyesuaikan Perwakilan Rentetan Contoh Kelas Python Saya?

Bagaimanakah Saya Boleh Menyesuaikan Perwakilan Rentetan Contoh Kelas Python Saya?

Susan Sarandon
Susan Sarandonasal
2024-12-27 01:16:11997semak imbas

How Can I Customize the String Representation of My Python Class Instances?

Perwakilan Rentetan Tersuai untuk Contoh Kelas

Apabila mencetak tika kelas, output lalai selalunya hanya menyediakan nama kelas dan alamat objek . Untuk menyesuaikan output ini dan memaparkan atribut khusus, seseorang boleh mentakrifkan perwakilan rentetan kelas.

Menggunakan str dan repr Kaedah

Python menyediakan dua kaedah khas, str dan __repr__, yang mengawal perwakilan rentetan objek. Dengan mengatasi kaedah ini dalam kelas, seseorang boleh menentukan cara kejadian kelas akan muncul apabila dicetak.

str Kaedah

str mentakrifkan perwakilan rentetan yang akan dipaparkan apabila fungsi cetakan digunakan. Ia harus mengembalikan perwakilan rentetan objek. Contohnya:

class Test:
    def __str__(self):
        return "member of Test"

repr Kaedah

Kaedah

repr mentakrifkan perwakilan rentetan yang akan dipaparkan apabila fungsi repr() digunakan atau objek diperiksa dalam gesaan interaktif. Ia harus mengembalikan perwakilan rentetan yang boleh digunakan untuk mencipta semula objek. Contohnya:

class Test:
    def __repr__(self):
        return "Test()"

Contoh

Pertimbangkan contoh berikut:

class Test:
    def __init__(self):
        self.a = 'foo'

    def __str__(self):
        return str(self.a)

    def __repr__(self):
        return "Test()"
Apabila mencetak contoh kelas ini, output berikut akan dipaparkan:

>>> print(Test())
foo

>>> repr(Test())
Test()
Dengan mentakrifkan kedua-dua Kaedah

str dan repr, anda mempunyai kawalan sepenuhnya ke atas perwakilan rentetan kejadian kelas anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Perwakilan Rentetan Contoh Kelas Python Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn