'in Python kapsam' döngüler
Python'un kuralları kapsamı hakkında demiyorum; genel olarak anlıyorumnasılölçüm döngüsü için Python ile çalışır. Benim sorumnedentasarım kararları bu şekilde yapıldı. Örneğin (hayır cinas tasarlamak):
for foo in xrange(10):
bar = 2
print(foo, bar)
Yukarıda yazdırır (9,2).
Bu garip olarak beni vurur: 'foo' gerçekten sadece kontrol döngü ve 'bar' döngü içinde tanımlanmıştır. 'Bar' döngü dışında erişilebilir olması (döngü işlevi çok sınırlı var yoksa). için gerekli olabilir anlayabiliyorum Anlamadığım şey kontrol değişkeni döngü çıkar sonra kapsamı içinde kalması için gerekli olmasıdır. Benim durumumda, sadece genel ad clutters ve zor tercümanlar tarafından yakalanmış olacağını hataları izlemek için başka dillerde yapar.
CEVAP
Akla en yakın cevap bu sadece tutar dilbilgisi basit, olmadı bir engel için benimsenmesi ve birçok hep mutlu olmaması için belirsizliği ortadan kaldırmak kapsamına hangi bir isme ait atarken içinde bir döngü oluşturmak. Değişkenler kapsamında beyan edilmez, atama deyimleri yer tarafından ima edilir. global
anahtar sadece bu nedenle (atama genel bir kapsam yapılır gösterecek) var.
Güncelleme
Bu konu üzerinde iyi bir tartışma burada: http://mail.python.org/pipermail/python-ideas/2008-October/002109.html
Yapmak için önceki teklifleri için döngü değişkenler döngü için yerel var mevcut sorun üzerinde tökezledi döngü değişkeni kullanan kod bu çıktıktan sonra değerini tutmak döngü, ve bu gibi görünüyor arzu edilen bir özellik olarak kabul edilir.
Kısacası, muhtemelen Python topluluğu :P onu suçlayabilirsin
Nasıl kırmak için Python çoklu döngüle...
Python yuvalanmış sınıfları kapsam...
Python kapatma: üst kapsam değişken Ya...
Nasıl kapsam için optimize etmek ve Sc...
Erişim için döngüler Python Endeksi...