Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menetapkan dan Mengakses Pembolehubah Tempatan Secara Dinamik dalam Python?

Bagaimanakah Saya Boleh Menetapkan dan Mengakses Pembolehubah Tempatan Secara Dinamik dalam Python?

Barbara Streisand
Lepaskan: 2024-12-18 22:31:15
asal
524 orang telah melayarinya

How Can I Dynamically Set and Access Local Variables in Python?

Mengakses Pembolehubah Tempatan Tetapan Dinamik dalam Python

Walaupun cadangan sebelum ini, pengubahsuaian terus pembolehubah tempatan melalui locals() tidak boleh dipercayai dan tidak ditentukan. Sebaliknya, beberapa pendekatan praktikal boleh digunakan untuk mencapai manipulasi pembolehubah tempatan dinamik.

Manipulasi Kamus

Gunakan kamus untuk menetapkan dan mengakses pembolehubah tempatan dinamik:

d = {}
d['xyz'] = 42
print(d['xyz'])
Salin selepas log masuk

Objek Atribut

Tetapkan atribut pada objek untuk mencipta pembolehubah setempat dinamik:

class C: pass

obj = C()
setattr(obj, 'xyz', 42)
print(obj.xyz)
Salin selepas log masuk

Nota:

Mengakses pembolehubah dalam bukan fungsi ruang nama (modul, definisi kelas, contoh) biasanya melibatkan carian kamus. Fungsi setempat boleh dioptimumkan untuk kelajuan dan pengubahsuaian terus locals() dalam fungsi biasanya tidak boleh dilakukan.

IronPython Exception

Dalam IronPython, secara eksplisit memanggil orang tempatan( ) mengembalikan pembolehubah tempatan sebagai kamus. Mengikat nama yang berbeza kepada penduduk setempat dalam fungsi memberikan akses kepada pembolehubah tempatan skop pengikatan.

Kesimpulan

Menggunakan kamus atau atribut objek menyediakan kaedah yang boleh dipercayai untuk menetapkan secara dinamik pembolehubah tempatan dalam Python. Elakkan bergantung pada pengubahsuaian langsung locals() untuk mengelakkan tingkah laku yang tidak dapat diramalkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan dan Mengakses Pembolehubah Tempatan Secara Dinamik dalam Python?. 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