Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Saya Mendapat `TypeError` atau `AttributeError` Apabila Menentukan Pembina Kelas Python?

Mengapa Saya Mendapat `TypeError` atau `AttributeError` Apabila Menentukan Pembina Kelas Python?

Patricia Arquette
Lepaskan: 2024-11-29 18:16:14
asal
1099 orang telah melayarinya

Why Do I Get `TypeError` or `AttributeError` When Defining a Python Class Constructor?

garis bawah tidak sepadan dalam Nama Pembina Kelas

Dalam Python, adalah perkara biasa untuk menghadapi ralat semasa membuat kelas disebabkan garis bawah yang tidak sepadan dalam nama pembina kelas . Daripada "def __int__" atau "def _init_", sintaks yang betul hendaklah "def __init__" dengan dua garis bawah pada setiap sisi.

TypeError: Kaedah Kelas Mengambil No Argumen

Jika pembina kelas tidak mengambil sebarang hujah, anda mungkin menghadapi TypeError yang menyatakan bahawa kelas "tidak mengambil argumen". Ini berlaku kerana kaedah "__int__" dengan garis bawah tidak sepadan adalah sah dari segi sintaksis tetapi bukan pembina kelas yang sah. Akibatnya, Python kembali kepada pembina objek asas, yang tidak mengambil hujah.

AttributeError: Attribute Missing from Class Instance

Sebagai alternatif, jika kelas pembina mengambil hujah tetapi tidak memulakan atribut dengan betul, anda mungkin menghadapi masalah AttributeError apabila cuba mengakses atribut tersebut. Ini kerana kaedah "_init_" dengan garis bawah yang tidak sepadan tidak memulakan atribut dengan betul.

Penjelasan Mesej Pengecualian

  • TypeError menunjukkan masalah dengan jenis argumen atau parameter dalam fungsi atau pembina kelas.
  • AttributeError menunjukkan bahawa objek tidak mempunyai atribut yang ditentukan.

Pencegahan dan Pengurangan

Untuk mengelakkan ralat ini, gunakan ejaan dan sintaks yang betul untuk pembina kelas, iaitu "def __init__(self, ...)" dengan dua garis bawah pada setiap sisi. Pembacaan pruf dan perhatian yang teliti terhadap perincian boleh membantu mengelakkan kesilapan menaip ini. Selain itu, menggunakan konvensyen meletakkan "__init__" sebagai kaedah pertama dalam kelas boleh berfungsi sebagai peringatan tentang pelaksanaannya yang betul.

Atas ialah kandungan terperinci Mengapa Saya Mendapat `TypeError` atau `AttributeError` Apabila Menentukan Pembina Kelas Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan