все Python 3pdbфункция
pdb.set_trace()
точки останова
Останавливает программу в отладчике в месте вызова. С Python 3.7 вместо неё обычно пишут breakpoint().
Синтаксис
pdb.set_trace(*, header=None)
С 3.13 остановка происходит на самой строке set_trace(), раньше — на следующей. Забытый вызов в решении опасен: в автопроверке отладчик начнёт читать команды из stdin и съест входные данные теста. breakpoint() лучше тем, что его отключает PYTHONBREAKPOINT=0 без правки кода — но запуск с -E или -I эту переменную игнорирует.
Примеры
import io, sys, pdb
def f(x):
pdb.set_trace()
y = x * 2
return y
sys.stdin = io.StringIO('p x\nc\n')
sys.stdout = log = io.StringIO()
r = f(21)
sys.stdout = sys.__stdout__
print(r, log.getvalue().split('(Pdb) ')[1].strip()) # → 42 21
import sys
sys.breakpointhook = lambda *a, **k: print('точка останова пропущена')
breakpoint() # → точка останова пропущена — так breakpoint() можно перенаправить
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности