Обрабатывая ответ Свена, поскольку я недавно должен был описать until
и next
коллеге.Он не является специфичным для понимания списка, которое stuck
со следующим, но для циклов в целом.:
Команда until
похожа на next
, за исключением того, чтоон явно продолжается до тех пор, пока выполнение не достигнет строки в той же функции с номером строки, превышающим текущее значение.
Это означает, что вы можете перешагнуть петли с помощью until
Просто для покрытия step
и next
для полноты:
step
команда используется для выполнения текущей строки и затем остановки в следующей точке выполнения
Это означает, что она будет выполнять инструкцию за инструкцией.Обратите внимание, что объединение инструкций с ;
будет обрабатываться как одна инструкция.
var A=0; var B=0 #Note: that will count as one instruction
Команда next подобна шагу, но не вводит функции, вызываемые из выполняемого оператора,По сути, он проходит весь путь через вызов функции до следующего оператора в текущей функции за одну операцию.
next
помогает перепрыгивать через несколько инструкций в функции несколькихопределения переменных, которые будут перепрыгивать через все из них.
Вот пример, который демонстрирует сценарий:
Пример: pdb_until.py
aVar = 3
x = [i for i in range(0,30)]
bVar = 5
Запуск с помощью Pdb:
python -m pdb pdb_until.py
Запускает наш интерактивный сеанс:
> pdb_until.py(1)<module>()
-> aVar = 3
(Pdb) step #our Input, we step
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) next #our Input, next
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) next #our Input, we are now stuck on line 2
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) until #our Input, until steps over (runs list comp)
Источник :Стандартная библиотека Python на примере Дуга Хеллмана