Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencapai Tugasan Pembolehubah Dinamik dalam Python?
Tugasan Pembolehubah Dinamik dalam Python
Dalam Python, tidak mungkin untuk menetapkan pembolehubah tempatan secara dinamik secara langsung. Walaupun jawapan lain mencadangkan mengubah suai fungsi locals(), pendekatan ini tidak boleh dipercayai dan mungkin tidak selalu berfungsi, terutamanya dalam fungsi.
Alternatif untuk Tugasan Pembolehubah Dinamik
Sebaliknya, terdapat kaedah alternatif untuk penetapan secara dinamik pembolehubah:
d = {} d['xyz'] = 42 print(d['xyz']) # Output: 42
class C: pass obj = C() setattr(obj, 'xyz', 42) print(obj.xyz) # Output: 42
def outer_function(x): def inner_function(y): return x + y return inner_function # Returns a closure add_foo = outer_function(10) print(add_foo(5)) # Output: 15
Memahami locals() Fungsi
The locals() fungsi mengembalikan kamus pembolehubah tempatan dalam fungsi. Walau bagaimanapun, mengubah suai kamus ini secara langsung tidak menjejaskan nilai pembolehubah sebenar. Contohnya:
def foo(): lcl = locals() lcl['xyz'] = 42 print(xyz) # Error: NameError: name 'xyz' is not defined
Ini kerana mengubah suai locals() mengubah suai salinan kamus pembolehubah tempatan, bukan pembolehubah sebenar itu sendiri.
Kesimpulan
Walaupun penetapan pembolehubah tempatan dinamik tidak boleh dilakukan secara langsung dalam Python, menggunakan kamus, atribut objek atau penutupan menyediakan penyelesaian alternatif untuk mencapai fungsi yang serupa. Adalah penting untuk mengambil perhatian nuansa fungsi locals() untuk mengelakkan kekeliruan apabila bekerja dengan pembolehubah tempatan dalam Python.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Tugasan Pembolehubah Dinamik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!