В настоящее время я использую IDE NetBeans с Jython 2.5.1
При пошаговой отладке моего проекта, как только встречается итерация по генератору, отладчик переходит прямо к концу кода.Вывод работает нормально, но невозможно выполнить пошаговую отладку после того, как первый генератор встречен.
Является ли это стандартным поведением для отладки Python во всех Python IDE?Разве невозможно отладить код «yield after yield» так же, как мы можем отлаживать VBA для каждого элемента цикла for (извините за упоминание VBA :)?
Спасибо.
РЕДАКТИРОВАТЬ
Без генератора
Код:
def example(n):
i = 1
while i <= n:
yield i
i += 1
print "hello"
print "goodbye"
Вывод:
hello
goodbye
Отладка:
[LOG]PythonDebugger : overall Starting
[LOG]PythonDebugger.taskStarted : I am Starting a new Debugging Session ...
[LOG]This window is an interactive debugging context aware Python Shell
[LOG]where you can enter python console commands while debugging
(...)
>>>[stdout:]hello
>>>[stdout:]goodbye
Debug session normal end
С генератором
Код:
def example(n):
i = 1
while i <= n:
yield i
i += 1
print "hello"
for n in example(3):
print n
print "goodbye"
Вывод:
hello
1
2
3
goodbye
Отладка:
[LOG]PythonDebugger : overall Starting
[LOG]PythonDebugger.taskStarted : I am Starting a new Debugging Session ...
[LOG]This window is an interactive debugging context aware Python Shell
[LOG]where you can enter python console commands while debugging
(...)
>>>[stdout:]hello
>>>None['GeneratorExit
deamon ended
']
Debug session normal end