Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa saya mendapat \"NameError: nama tidak ditakrifkan\" dalam skrip Python saya?

Mengapa saya mendapat \"NameError: nama tidak ditakrifkan\" dalam skrip Python saya?

Susan Sarandon
Susan Sarandonasal
2024-10-30 09:35:27880semak imbas

Why am I getting a

Python NameError: Menyelesaikan Isu Definisi Nama

Apabila melaksanakan skrip Python, anda mungkin menghadapi ralat "NameError: name is not definition. " Ralat ini menandakan bahawa skrip tidak dapat mengesan nama atau pengecam yang ditentukan dalam ruang nama program. Mari kita terokai punca ralat ini dan kenal pasti penyelesaiannya.

Coretan kod yang diberikan menggambarkan isu ini:

s = Something()
s.out()

class Something:
    def out(self):
        print("it works")

Setelah menjalankan skrip ini, jurubahasa menemui "NameError: name ' Sesuatu' tidak ditakrifkan" pengecualian. Ini kerana sesuatu kelas tidak ditakrifkan sebelum ia dijadikan sebagai objek. Untuk menyelesaikan isu ini, takrifan kelas mesti mendahului penggunaannya:

class Something:
    def out(self):
        print("it works")

s = Something()
s.out()

Dengan mentakrifkan kelas sebelum cuba mencipta tika, penterjemah boleh berjaya mengecam Sesuatu dan menjadikan objek s.

Selain itu, ambil perhatian bahawa kaedah contoh dalam Python memerlukan hujah kendiri sebagai parameter pertama. Parameter ini mewakili contoh kelas yang memanggil kaedah. Dalam kod yang disediakan, kaedah keluar tidak memberikan diri sendiri sebagai hujah pertama, yang akan mengakibatkan ralat jenis lain.

Dengan mengikuti garis panduan ini, anda boleh mengelakkan pengecualian "NameError: name is not definition" dan pastikan skrip Python anda berjaya dilaksanakan.

Atas ialah kandungan terperinci Mengapa saya mendapat \"NameError: nama tidak ditakrifkan\" dalam skrip Python saya?. 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