locals()
, vars()
veya globals()
ve değişken adınızı buraya enjekte edebilirsiniz. Örneğin için. Böyle bir şey yapıyorsan
>>> list10
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'list10' is not defined
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'x': [], '__name__': '__main__', '__doc__': None}
>>> locals()['list10'] = []
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, 'list10': [], '__package__': None, 'x': [], '__name__': '__main__', '__doc__': None}
>>> list10
[]
Genellikle, muhtemelen değişken adını ve değer (ler) saklamak için bir sözlük kullanarak daha iyi olurdu. Örneğin,
.
>>> my_lists = {}
>>> my_lists['list10'] = []
Ve açın bakın istediğinizde olmayan varlığına karşı kendinizi korumak için gidiyoruz erişen doğrudan mevcut veya bir değişken adı karşı sağlamlığı istiyorsanız o zaman, bunu .get()
edebilirsiniz.
>>> the_list_i_want = my_lists.get('list10')
>>> the_list_i_want = my_lists['list10'] # Will raise a KeyError if it does not exist
kullanın 'list '! mylist.append (myvalue) ' – deceze
Evet, bunu Python ve Tcl'de yapmanın yolu sıralı değişken isimleri kullanmamaktır. Verileri kod haline getirdiği için korkunç bir uygulamadır. Evet, tcl yapmanıza izin verir, ancak 'dict $ i [$ 4] [list 4 5 6] ayarladı.' Python'un aşağıda olduğu gibi çok daha iyi. – msw