Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa saya mendapat Ralat \"NameError: name is not definition\" dalam Python?

Mengapa saya mendapat Ralat \"NameError: name is not definition\" dalam Python?

DDD
DDDasal
2024-11-03 03:04:02758semak imbas

Why am I getting the

Enigma "NameError: nama tidak ditakrifkan" Python

Apabila menghadapi ralat "NameError: nama tidak ditakrifkan" semasa pelaksanaan Python, ia membayangkan bahawa penterjemah tidak boleh cari pembolehubah, fungsi, atau kelas dengan nama yang ditentukan. Untuk menyelesaikan isu ini, pastikan entiti yang dipersoalkan telah ditakrifkan dengan betul dalam skrip.

Dalam contoh yang diberikan, kod cuba menggunakan kelas Sesuatu sebelum mengisytiharkannya. Lazimnya, kelas hendaklah ditakrifkan pada permulaan skrip, sebelum sebarang percubaan dibuat untuk membuat seketika atau mengakses ahlinya.

Pendekatan yang betul ialah mentakrifkan kelas Sesuatu dahulu:

<code class="python">class Something:
    def out(self):
        print("it works")</code>

Kemudian, cipta instance kelas itu dan akses kaedah keluarnya:

<code class="python">s = Something()
s.out()</code>

Satu lagi aspek penting ialah menjadikan diri sebagai parameter pertama kepada kaedah contoh seperti keluar. Dalam Python, kaedah contoh memerlukan sintaks khusus yang menyertakan diri sebagai hujah awal, yang merujuk kepada objek semasa. Gagal melepaskan diri boleh membawa kepada tingkah laku dan ralat yang tidak dijangka.

Dengan pertimbangan ini, anda seharusnya dapat menyelesaikan isu "NameError: name is not definition" dan memastikan kod Python anda dilaksanakan seperti yang dimaksudkan.

Atas ialah kandungan terperinci Mengapa saya mendapat Ralat \"NameError: name is not definition\" dalam Python?. 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