Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Kod Python 3 Saya Membuang `UnboundLocalError`?

Mengapa Kod Python 3 Saya Membuang `UnboundLocalError`?

Barbara Streisand
Lepaskan: 2025-01-03 16:27:40
asal
875 orang telah melayarinya

Why Does My Python 3 Code Throw an `UnboundLocalError`?

Rujukan Pembolehubah Tidak Selesai: Memahami 'UnboundLocalError' dalam Python 3

Coretan kod yang disediakan telah menemui pengecualian 'UnboundLocalError', menunjukkan bahawa ia merujuk pembolehubah tempatan ('Var1') sebelum memberikannya a nilai. Ini berlaku apabila nama pembolehubah diisytiharkan dalam fungsi, tetapi tiada nilai diberikan kepadanya sebelum penggunaannya.

Untuk membetulkan ralat ini, kami menyelidiki lebih mendalam tentang nuansa skop pembolehubah dalam Python 3. Manakala kod pada mulanya mengisytiharkan 'Var1' sebagai pembolehubah global, pernyataan tugasan 'Var1 -= 1' dalam fungsi mencipta pembolehubah tempatan yang dipanggil 'Var1'. Ini mengubah suai pembolehubah setempat kepada fungsi, bukan yang global yang diisytiharkan di luar.

Untuk menggunakan pembolehubah global dalam fungsi, Python 3 menyediakan kata kunci 'global'. Dengan menambah 'global Var1, Var2' pada permulaan fungsi, kami menyatakan dengan jelas bahawa kami berhasrat untuk merujuk pembolehubah global bernama 'Var1' dan 'Var2' dalam skop fungsi. Ini menghalang penciptaan pembolehubah tempatan dengan nama yang sama, sekali gus menyelesaikan 'UnboundLocalError'.

Dalam Python 3, pernyataan 'nonlocal' juga wujud untuk memanipulasi pembolehubah yang ditakrifkan dalam skop yang disertakan. Walau bagaimanapun, 'nonlocal' biasanya digunakan apabila fungsi bersarang, yang tidak berlaku dalam kod yang disediakan.

Untuk mendapatkan maklumat lanjut tentang skop pembolehubah dan pengendalian ralat, tapak web Python dan dokumentasi berkaitan berfungsi sebagai sumber yang berharga. Dengan memahami prinsip rujukan pembolehubah dan memanfaatkan kata kunci yang sesuai, pembangun Python boleh mengurus skop pembolehubah dengan berkesan dan mengelakkan ralat masa jalan tersebut.

Atas ialah kandungan terperinci Mengapa Kod Python 3 Saya Membuang `UnboundLocalError`?. 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