Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengakses Pembolehubah Bukan Tempatan dalam Python 2.x?

Bagaimanakah Saya Boleh Mengakses Pembolehubah Bukan Tempatan dalam Python 2.x?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 08:37:03250semak imbas

How Can I Access Nonlocal Variables in Python 2.x?

Memahami Kata Kunci bukan tempatan dalam Python 2.x

Dalam versi Python sebelum 3.0, kata kunci bukan tempatan tidak tersedia. Walau bagaimanapun, ini tidak bermakna anda tidak boleh mengakses pembolehubah bukan tempatan dalam penutupan.

Membaca Pembolehubah Bukan Setempat

Dalam Python 2.x, fungsi dalaman masih boleh membaca bukan tempatan pembolehubah, tetapi mereka tidak boleh mengikatnya semula. Ini bermakna anda boleh mengakses nilai pembolehubah tetapi tidak mengubahnya.

Mengatasi Had

Untuk mengatasi had ini, anda boleh menggunakan penyelesaian menggunakan kamus. Simpan data bukan tempatan anda dalam kamus, dan kemudian fungsi dalaman boleh memanipulasi objek yang dirujuk oleh data tanpa mengikat semula.

Sebagai contoh, pertimbangkan contoh daripada Wikipedia:

<code class="python">def outer():
    d = {'y': 0}

    def inner():
        d['y'] += 1
        return d['y']

    return inner

f = outer()
print(f(), f(), f())  # Prints 1 2 3</code>

Dalam contoh ini , fungsi dalaman boleh mengakses pembolehubah 'y' yang disimpan dalam kamus 'd'. Walaupun pembolehubah 'y' itu sendiri tidak boleh diubah suai, nilainya boleh ditambah dari dalam fungsi dalaman.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Pembolehubah Bukan Tempatan dalam Python 2.x?. 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