Python Glossary Русский

all Python 3pdbfunction

pdb.runeval()

running under the debugger

Evaluates an expression under the debugger and returns its value, unlike pdb.run(), which returns None.

Syntax

pdb.runeval(expression, globals=None, locals=None)

It accepts only an expression: an assignment or a loop raises SyntaxError before the debugger even starts; statements need pdb.run(). Like run(), it uses the __main__ namespace by default and reads commands from sys.stdin; for a scripted session swap stdin or build your own pdb.Pdb.

Examples

import io, sys, pdb
sys.stdin = io.StringIO('c\nc\n')
sys.stdout = log = io.StringIO()
value = pdb.runeval('2 ** 10')
try:
    pdb.runeval('x = 1')
except SyntaxError as e:
    error = type(e).__name__
sys.stdout = sys.__stdout__
print(value, error)  # → 1024 SyntaxError

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy