Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menetapkan Pembolehubah Tempatan secara Dinamik dalam Python Selain Menggunakan `locals()`?

Bagaimanakah Saya Boleh Menetapkan Pembolehubah Tempatan secara Dinamik dalam Python Selain Menggunakan `locals()`?

DDD
Lepaskan: 2024-12-05 06:07:12
asal
730 orang telah melayarinya

How Can I Dynamically Set Local Variables in Python Beyond Using `locals()`?

Tetapan Pembolehubah Dinamik: Di luar locals()

Dalam Python, menetapkan pembolehubah tempatan secara dinamik menimbulkan cabaran jika nama pembolehubah itu sendiri dinamik . Bertentangan dengan andaian popular, pengubahsuaian pada kamus locals() tidak selalu boleh dipercayai untuk menetapkan pembolehubah setempat dalam fungsi.

Pendekatan Alternatif:

Daripada bergantung pada orang tempatan( ), pertimbangkan alternatif berikut:

  • Menggunakan a Kamus:
    Cipta kamus dan tetapkan nama pembolehubah dinamik pada kunci. Akses nilai melalui kamus.

    d = {}
    d['xyz'] = 42
    print(d['xyz'])  # Prints 42
    Salin selepas log masuk
  • Menggunakan Atribut Kelas:
    Takrifkan kelas dan tetapkan nama pembolehubah dinamik sebagai atribut. Akses nilai melalui contoh kelas.

    class C:
        pass
    
    obj = C()
    setattr(obj, 'xyz', 42)
    print(obj.xyz)  # Prints 42
    Salin selepas log masuk

Memahami Tingkah Laku Orang Setempat():

Sementara locals() mungkin berfungsi di dalam fungsi kerana kepada pengoptimuman pengkompil, adalah penting untuk ambil perhatian bahawa mengubah suai locals() secara langsung boleh membawa kepada hasil yang tidak dijangka. Tugasan kepada kamus yang dikembalikan adalah sementara dan akan ditimpa pada panggilan locals() seterusnya.

Spesifik IronPython:

Dalam IronPython, orang tempatan() berkelakuan berbeza. Memanggil locals() di bawah nama yang berbeza mengikat pembolehubah tempatan skop tempat nama itu terikat. Walau bagaimanapun, tidak mungkin untuk mengakses fungsi setempat melalui nama terikat ini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menetapkan Pembolehubah Tempatan secara Dinamik dalam Python Selain Menggunakan `locals()`?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan