Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengatasi `__str__` dan `__repr__` untuk Output Cetakan Tersuai bagi Contoh Kelas?

Bagaimana untuk Mengatasi `__str__` dan `__repr__` untuk Output Cetakan Tersuai bagi Contoh Kelas?

Susan Sarandon
Susan Sarandonasal
2025-01-03 04:45:38534semak imbas

How to Override `__str__` and `__repr__` for Customized Print Output of Class Instances?

Cara Menyesuaikan Perwakilan Rentetan Kejadian Kelas dengan print()

Apabila mencetak tika kelas, tingkah laku lalai sering memaparkan lokasi ingatan objek. Untuk menyesuaikan perwakilan rentetan dan mengawal perkara yang ditunjukkan semasa mencetak, anda boleh melaksanakan dua kaedah khas: str dan __repr__.

__str__: Mentakrifkan Perwakilan Rentetan Boleh Dibaca Manusia

Kaedah str mentakrifkan rentetan representasi objek untuk kegunaan umum. Ia digunakan apabila anda memanggil print() atau str() pada objek. Dengan mengatasi __str__, anda boleh menentukan output tersuai yang dipaparkan semasa mencetak.

__repr__: Menentukan Perwakilan Rentetan untuk Nyahpepijat

repr kaedah mentakrifkan perwakilan rentetan yang dimaksudkan untuk tujuan penyahpepijatan. Ia digunakan apabila anda memanggil repr() pada objek atau jika anda tidak mentakrifkan str__. Perwakilan __repr mestilah ungkapan Python yang sah yang menilai kepada objek.

Contoh

Untuk menyesuaikan perwakilan rentetan kejadian kelas anda:

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

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

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

Dalam contoh di atas:

  • The Kaedah str mengembalikan rentetan yang boleh dibaca manusia, "ahli Ujian", apabila anda mencetak objek.
  • Kaedah repr mengembalikan ungkapan Python yang sah, "Uji ()", itu akan mencipta semula objek.

Apabila anda mencetak tika ini kelas:

t = Test()
print(t)

Ia akan memaparkan "ahli Ujian" pada konsol, memberikan perwakilan tersuai dan bermakna.

Atas ialah kandungan terperinci Bagaimana untuk Mengatasi `__str__` dan `__repr__` untuk Output Cetakan Tersuai bagi Contoh Kelas?. 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