Python Glossary English

Python 3.7+sysфункция

sys.breakpointhook()

отладка и трассировка

Функция, которую вызывает встроенная breakpoint(). По умолчанию открывает pdb; подменив её, можно выбрать другой отладчик или отключить остановки.

Синтаксис

sys.breakpointhook = hook

Забытый breakpoint() в решении на сервере проверки ждёт ввода и вешает прогон — переменная окружения PYTHONBREAKPOINT=0 превращает все такие вызовы в пустые. Но если программа сама присвоила sys.breakpointhook, переменная уже не читается. Аргументы breakpoint(*args, **kw) передаются хуку как есть, а его результат возвращает breakpoint(). Исходный хук — sys.__breakpointhook__.

Примеры

import sys
def stop(*args, **kw):
    print('стоп', args, kw)
sys.breakpointhook = stop
breakpoint('x', depth=1)  # → стоп ('x',) {'depth': 1}
sys.breakpointhook = sys.__breakpointhook__
import os, subprocess, sys
env = dict(os.environ, PYTHONBREAKPOINT='0')
code = 'breakpoint(); print("дальше")'
r = subprocess.run([sys.executable, '-c', code], env=env,
                   capture_output=True, text=True, timeout=10)
print(r.stdout.strip())  # → дальше

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности