Rumah >pembangunan bahagian belakang >Tutorial Python >Python `str` lwn. `repr`: Apakah Perbezaan dalam Perwakilan Objek?

Python `str` lwn. `repr`: Apakah Perbezaan dalam Perwakilan Objek?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 01:13:101032semak imbas

Python `str` vs. `repr`: What's the Difference in Object Representation?

str dan __repr__: Membuka Kunci Perbezaan dalam Perwakilan Python

Perbezaan antara str dan repr dalam Python terletak pada asasnya objektif:

repr untuk Identiti Tidak Samar

__repr__, seperti namanya, bertujuan untuk memberikan "perwakilan" yang jelas bagi sesuatu objek. Fokusnya adalah untuk menyediakan maklumat yang mencukupi untuk mencipta semula objek yang sama kemudiannya. Pelaksanaan lalai mengembalikan nama kelas dan atribut, memisahkannya dengan pembatas parameter. Format ini memastikan bahawa hasilnya boleh dinilai dengan eval(), membenarkan penyusunan semula objek.

str untuk Kebolehbacaan Manusia

__str__, sebaliknya, mengutamakan kebolehbacaan manusia daripada ketepatan. Ia bertujuan untuk menghasilkan rentetan yang boleh difahami dengan mudah oleh manusia. Ia selalunya meninggalkan butiran yang tidak perlu dan mungkin memformatkan output agar lebih menarik secara visual.

Perbezaan Utama

  • repr berusaha untuk perwakilan yang jelas , manakala str bertujuan untuk kebolehbacaan.
  • str dimaksudkan untuk output yang menghadap pengguna, manakala repr lebih sesuai untuk nyahpepijat atau introspeksi objek.
  • Pelaksanaan lalai repr biasanya tidak berguna tetapi boleh digunakan untuk nyahpepijat apabila str tidak ditakrifkan.
  • Bekas (cth., senarai, kamus) menggunakan repr objek yang terkandung untuk __str__.

Terbaik Amalan

  • Sentiasa tentukan repr untuk kelas tersuai anda bagi memastikan pengenalan objek yang betul.
  • Hanya laksanakan str jika anda mahu perwakilan rentetan yang boleh dibaca manusia yang mungkin berbeza daripada __repr__.
  • Gunakan %r (pemformatan repr()) dalam repr untuk memastikan penilaian yang tidak jelas.
  • Gunakan %s (str() pemformatan) dalam str untuk memformat rentetan untuk kebolehbacaan.

Atas ialah kandungan terperinci Python `str` lwn. `repr`: Apakah Perbezaan dalam Perwakilan Objek?. 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