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

DDD
Lepaskan: 2024-11-01 10:37:30
asal
502 orang telah melayarinya

Why am I getting

Membetulkan "NameError: name is not definition" dalam Python

Dalam Python, ralat "NameError: name is not definition" berlaku apabila anda cuba mengakses pembolehubah atau kelas yang belum diisytiharkan atau ditakrifkan sebelum ini dalam kod. Untuk menangani isu ini, skop dan pengisytiharan pembolehubah dan kelas yang betul adalah penting.

Mari kita periksa coretan kod yang anda berikan:

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

class Something:
    def out():
        print("it works")</code>
Salin selepas log masuk

Ralat disebabkan oleh fakta bahawa kelas Something ditakrifkan selepas ia digunakan untuk mencipta tika dirinya sendiri. Dalam Python, jurubahasa mentafsir kod baris demi baris, jadi kelas Something belum diketahui pada masa baris "s = Something()" dilaksanakan.

Untuk menyelesaikan isu ini, anda perlu tentukan kelas sebelum anda menggunakannya. Berikut ialah kod yang diperbetulkan:

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

s = Something()
s.out()</code>
Salin selepas log masuk

Perhatikan bahawa kami juga menambah diri sebagai hujah pertama kepada kaedah keluar. Ini diperlukan untuk contoh kaedah dalam Python, yang beroperasi pada contoh objek tertentu. Dengan melepasi diri sebagai hujah pertama, kaedah boleh mengakses atribut contoh dan mengubah suai keadaan objek.

Dengan pembetulan ini, kod akan dijalankan tanpa NameError dan mengeluarkan "ia berfungsi" seperti yang diharapkan.

Atas ialah kandungan terperinci Mengapa saya mendapat \'NameError: nama tidak ditakrifkan\' dalam Python?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!