Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Pembina Kelas Python Saya Gagal dengan `TypeError: Example() tidak mengambil argumen` atau `AttributeError`?

Mengapa Pembina Kelas Python Saya Gagal dengan `TypeError: Example() tidak mengambil argumen` atau `AttributeError`?

Linda Hamilton
Lepaskan: 2024-11-30 00:08:14
asal
178 orang telah melayarinya

Why Does My Python Class Constructor Fail with `TypeError: Example() takes no arguments` or `AttributeError`?

Kekeliruan dengan Penamaan Pembina Kelas:

Semasa pembinaan kelas, pengaturcara Python baharu sering menghadapi ralat yang berkaitan dengan pembina kelas yang salah nama. Dua kesilapan menaip biasa menggunakan "def __int__" bukannya "def __init__" atau "def _init_" bukannya "def __init__."

"def __int__":

Pembina kelas hendaklah dinamakan "__init__" dengan dua garis bawah pada setiap sisi. Menggunakan "def __int__" memperuntukkan fungsi penukaran integer kepada kelas, mengakibatkan ralat apabila cuba membuat instantiate kelas dengan argumen.

class Example:
    def __int__(self, parameter):  # Incorrect
        self.attribute = parameter
Salin selepas log masuk

"def _init_":

Menggunakan "def _init_" juga membawa kepada ralat kerana ia tidak sepadan dengan pembina yang dijangkakan nama.

class Example:
    def _init_(self, parameter):  # Incorrect
        self.attribute = parameter
Salin selepas log masuk

"TypeError: Example() take no arguments":

Apabila cuba mencipta instance kelas, ralat "TypeError: Example () tidak mengambil hujah" berlaku kerana nama pembina yang salah telah menetapkan penukaran integer fungsi.

"AttributeError: Objek 'Contoh' tidak mempunyai atribut 'atribut'":

Ralat ini menunjukkan bahawa contoh kelas tidak mempunyai atribut yang diharapkan. Sebabnya ialah nama pembina yang salah tidak menetapkan atribut dalam kelas.

Pencegahan:

Untuk mengelakkan ralat ini, sentiasa pastikan bahawa pembina kelas dinamakan dengan betul sebagai "__init__". Bacaan pruf dan latihan adalah penting untuk menangkap kesilapan silap ini. Selain itu, mempunyai kebiasaan untuk meletakkan "__init__" sebagai kaedah pertama dalam kelas boleh membantu mengelakkan ralat.

Atas ialah kandungan terperinci Mengapa Pembina Kelas Python Saya Gagal dengan `TypeError: Example() tidak mengambil argumen` atau `AttributeError`?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan