Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengakses Pembolehubah Bukan Tempatan daripada Fungsi Bersarang dalam Python?
Mengakses Pembolehubah Bukan Setempat dalam Skop Fungsi Bersarang
Dalam Python, skop fungsi bersarang menyediakan akses kepada skop yang disertakan. Walau bagaimanapun, percubaan untuk mengubah suai pembolehubah dalam skop tertutup dalam fungsi bersarang boleh mengakibatkan UnboundLocalError.
Untuk menangani isu ini, anda mempunyai beberapa pilihan:
1. Menggunakan Kata Kunci 'nonlocal' (Python 3 ):
Untuk Python 3 dan seterusnya, kata kunci bukan tempatan membolehkan anda mengikat semula pembolehubah bukan tempatan dalam fungsi bersarang.
<code class="python">def outer(): ctr = 0 def inner(): nonlocal ctr ctr += 1 inner()</code>
2. Akses Tidak Langsung melalui Senarai (Python 2 dan 3):
Dalam kedua-dua Python 2 dan 3, anda boleh menggunakan senarai untuk menahan pembolehubah dan menambahnya secara tidak langsung dalam fungsi bersarang.
<code class="python">ctr = [0] def inner(): ctr[0] += 1</code>
3. Menggunakan Pembolehubah Global (Tidak Disyorkan):
Walaupun menggunakan global boleh membenarkan akses kepada pembolehubah daripada melampirkan skop, ia biasanya tidak digalakkan kerana potensi konflik dan isu kebolehbacaan kod.
<code class="python">def outer(): global ctr ctr = 0 def inner(): ctr += 1</code>
Memilih penyelesaian yang sesuai bergantung pada versi Python khusus anda dan pertimbangan reka bentuk untuk kod anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah Bukan Tempatan daripada Fungsi Bersarang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!