Cara menggunakan fungsi __str__() dalam Python untuk menentukan perwakilan rentetan objek

WBOY
Lepaskan: 2023-08-21 22:55:54
asal
1244 orang telah melayarinya

Cara menggunakan fungsi __str__() dalam Python untuk menentukan perwakilan rentetan objek

Cara menggunakan fungsi __str__() dalam Python untuk mentakrifkan perwakilan rentetan objek

Dalam Python, setiap objek mempunyai perwakilan rentetan yang digunakan untuk memaparkan kandungannya semasa mencetak objek. Selalunya, perwakilan rentetan lalai bagi objek tidak mencukupi untuk keperluan kita. Untuk menyesuaikan perwakilan rentetan objek, kita boleh menggunakan fungsi __str__() dalam Python. Fungsi

__str__() ialah kaedah khas yang digunakan untuk menukar objek kepada rentetan. Apabila kita mencetak objek, Python secara automatik memanggil fungsi __str__() objek dan mencetak nilai pulangannya sebagai rentetan.

Berikut ialah contoh mudah yang menunjukkan cara mentakrifkan perwakilan rentetan objek menggunakan fungsi __str__() dalam Python:

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)
Salin selepas log masuk

Dalam kod di atas, kami telah menentukan kelas yang dipanggil Person, yang Mempunyai dua atribut: nama dan umur. Kami mentakrifkan fungsi __str__() dalam kelas dan mengembalikan rentetan terformat yang mengandungi nilai atribut objek.

Apabila kita mencipta objek Orang dan mencetaknya, Python akan secara automatik memanggil fungsi __str__() objek dan mencetak nilai pulangannya. Hasil keluarannya ialah:

Person(name=Tom, age=25)
Salin selepas log masuk
Salin selepas log masuk

Dengan mentakrifkan fungsi __str__(), kita boleh memaparkan nilai atribut objek dalam cara yang lebih intuitif, menjadikannya lebih mudah untuk kita menyahpepijat dan memahami atur cara. Kita boleh menyesuaikan format rentetan dalam fungsi __str__() mengikut keperluan kita sendiri dan mengawal kandungan bercetak dengan tepat.

Selain fungsi __str__(), Python juga menyediakan satu lagi kaedah khas __repr__(). Rentetan yang dikembalikan oleh kaedah __repr__() mestilah ungkapan Python yang sah yang boleh digunakan untuk mencipta objek. Jika kita tidak mentakrifkan fungsi __str__(), Python akan memanggil fungsi __repr__() objek secara lalai untuk mencetak objek.

Berikut ialah contoh yang menunjukkan cara menggunakan kaedah __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)
Salin selepas log masuk

Kod ini hampir sama dengan kod contoh sebelumnya, satu-satunya perbezaan ialah kita menggunakan kaedah __repr__() dan bukannya __str__() kaedah . Outputnya masih sama:

Person(name=Tom, age=25)
Salin selepas log masuk
Salin selepas log masuk

Perlu diingatkan bahawa kaedah __str__() digunakan terutamanya untuk menyediakan rentetan deskriptif untuk objek, manakala kaedah __repr__() digunakan terutamanya untuk menyediakan rentetan yang digunakan untuk membina semula objek . Dalam pembangunan sebenar, kita boleh memilih kaedah yang hendak digunakan mengikut keperluan, atau menentukan dua kaedah pada masa yang sama untuk menyediakan perwakilan rentetan yang lebih komprehensif.

Atas ialah kandungan terperinci Cara menggunakan fungsi __str__() dalam Python untuk menentukan perwakilan rentetan objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!