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!