Bu soru burada zaten bir cevabı var:
Yerliler () döner dicti değiştirmek için not safe a> olduğu
>>> d={'a':6, 'b':"hello", 'c':set()}
>>> exec '\n'.join("%s=%r"%i for i in d.items())
>>> a
6
>>> b
'hello'
>>> c
set([])
Ama bu gibi exec kullanarak çirkin. Bunu dinamik yerel ad eklemek gerekmez yeniden gerektiğini
Edit: açıklamalarda repr kullanma hakkında Mike'ın rezervasyonları bakın.
>>> d={'a':6, 'b':"hello", 'c':set()}
>>> exec '\n'.join("%s=d['%s']"%(k,k) for k in d)
>>> id(d['c'])
3079176684L
>>> id(c)
3079176684L
Deneyin:
locals().update(my_dict)
EDIT:
gnibbler
yerliler (: http://docs.python.org/library/functions.html#locals kontrol) modifiye edilmesi gerektiğini çok geçerli bir nokta yaptı. Yine de, Python docs güvenli değil demek değildir, sadece yerliler için değişiklikler değişkenlerin değerlerini etkilemez olabileceğini söylüyor. Soruya cevap vermeden önce ben küresel alanda ve bir işlev içinde hem yerli güncellenmesi aslında çalışır benim Python 2.6 IDLE çalıştı. Ben cevap silme değilim, ama bunun yerine bir warning Belli (platforma özel?) Koşullar altında işe yarayabilecek ekliyorum, ama garanti değil bu yüzden.
Ben buldum benzer bir question O SO cevap oldu. Kabul cevabı python için kendi özü eşdeğer haddeleme göstermektedir.
Yerliler değiştirme () dict bir çözüm olabilirdi ama dokümanlar söylüyorlar, http://docs.python.org/library/functions.html#
Note The contents of this dictionary should not be modified; changes may not affect the values of local and free variables used by the interpreter.
hatta bunu neden ihtiyaç yüzden soru? size ulaşmak için çalışıyoruz ne olursa olsun elde etmek için daha iyi yollar olabilir.
Ayrıca neden doğrudan dicti erişmek veya değişkenlere atarsınız değil mi?