Açık bir şekilde bir try-hariç bloğu yazmadan bu ifadeyi yazmanın çok Pythonic bir yolu var StopIteration
:
# some_iterable is some collection that can be iterated over
# e.g., a list, sequence, dict, set, itertools.combination(...)
for value in some_iterable:
print(value)
Neden tanıtıldığını ve yineleyicilerin ardındaki mantığı öğrenmek istiyorsanız ilgili PEP 234 255'i okuyabilirsiniz StopIteration
.
Python'daki genel bir prensip, bir şeyi yapmanın bir yoluna (bkz. import this
) Ve tercihen, pitonik yöntemin karşıladığı güzel, açık, okunabilir ve basittir. Eşdeğer kodunuz yalnızca python yineleyicilere hasNext
üye işlevi vermediğinden gereklidir; İnsanların doğrudan yineleyiciler arasında dolaşmasını tercih etmek (ve sadece okumayı denemek ve bir istisna yakalamak için başka bir şey yapmanız gerekiyorsa).
StopIteration
Bir yineleyicinin sonunda bir istisnanın bu otomatik olarak yakalanması bir anlam ifade eder ve EOFError
dosyanın sonundan önce okursanız , yükseltilenlerin bir benzeridir .