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

Bagaimanakah Saya Boleh Menetapkan Pembolehubah Tempatan secara Dinamik dalam Python?

Linda Hamilton
Linda Hamiltonasal
2024-12-02 03:11:13665semak imbas

How Can I Dynamically Assign Local Variables in Python?

Tugasan Pembolehubah Dinamik dalam Python

Dalam Python, menetapkan pembolehubah tempatan secara dinamik dengan mengubah suai terus kamus locals() bukanlah penyelesaian yang berdaya maju. Bertentangan dengan kepercayaan popular, sebarang pengubahsuaian sedemikian tidak akan berterusan dalam skop fungsi.

Pendekatan Alternatif

Untuk menetapkan pembolehubah setempat secara dinamik, pertimbangkan untuk menggunakan mana-mana kaedah berikut:

Kamus

Buat kamus dan tetapkan pasangan nilai kunci secara dinamik:

d = {}
d['xyz'] = 42

Atribut Objek

Gunakan objek dan tetapkan atribut secara dinamik:

class C: pass

obj = C()
setattr(obj, 'xyz', 42)

Edit

Mengakses pembolehubah dalam bukan fungsi ruang nama (modul, definisi kelas, contoh) biasanya melibatkan carian kamus. Walau bagaimanapun, fungsi setempat dioptimumkan untuk kelajuan dengan pra-penyusun nama pembolehubah yang diketahui pengkompil.

Dalam pelaksanaan C Python, memanggil locals() dalam fungsi mencipta kamus yang dimulakan dengan nilai pembolehubah tempatan semasa. Kamus ini dikemas kini dengan perubahan pada pembolehubah setempat dan dikembalikan apabila panggilan berikutnya kepada locals().

Dalam IronPython, fungsi memanggil locals() menggunakan kamus sebagai stor pembolehubah setempat mereka. Tugasan kepada pembolehubah tempatan mengubah kamus, dan sebaliknya. Walau bagaimanapun, mengikat nama yang berbeza kepada fungsi tempatan dalam IronPython membenarkan akses kepada pembolehubah tempatan skop pengikatan, bukan fungsi.

Awas

Adalah penting untuk ambil perhatian bahawa pemberian kepada kamus yang dikembalikan oleh locals() boleh menghasilkan keputusan yang tidak dapat diramalkan. Bergantung pada tugasan ini amat tidak digalakkan.

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