Я нашел этот вопрос о поведении итератора в Python:Почему QtConsole echo next()?
Python list iterator behavior and next(iterator)
Когда я напечатал в коде:
a = iter(list(range(10)))
for i in a:
print a
next(a)
в jupyter-qtconsole
он вернулся:
0
2
4
6
8
точно так, как Martijn Pieters сказал, что это должно произойти, когда интерпретатор не отвечает на звонок next(a)
.
Однако, когда я запусти тот же код в моем Bash интерпретатора и IDLE, код напечатал:
0
1
2
3
4
5
6
7
8
9
на консоль.
Я побежал код:
import platform
platform.python_implementation()
во всех трех средах, и все они сказали, что я побежал 'CPython'
.
Так почему же QtConsole подавляет вызов next(a)
, когда IDLE и Bash нет?
Если это помогает, я запускаю Python 2.7.9 на Mac OSX и используя дистрибутив Anaconda.