Python Glossary English

все Python 3pdbфункция

pdb.runcall()

запуск под отладчиком

Вызывает функцию с аргументами под отладчиком: остановка на первой строке её тела, возврат — её результат.

Синтаксис

pdb.runcall(function, *args, **kwds)

Передаётся сама функция и её аргументы отдельно — runcall(f, 3, 4), а не runcall(f(3, 4)): во втором случае f выполнится до отладчика, и он получит уже готовое число. Остановка — внутри функции, а не на строке вызова, так что аргументы сразу видны командой args (a).

Примеры

import io, sys, pdb
def area(w, h):
    return w * h
sys.stdin = io.StringIO('a\nc\n')
sys.stdout = log = io.StringIO()
result = pdb.runcall(area, 3, h=4)
sys.stdout = sys.__stdout__
print(result)  # → 12
print(log.getvalue().split('(Pdb) ')[1].split())  # → ['w', '=', '3', 'h', '=', '4']

См. также

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