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

Mary-Kate Olsen
Lepaskan: 2024-10-22 08:37:03
asal
156 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!