In python, I would like to take one statement (as a string) and execute it. If the statement is an expression, I’d like to get the value of the expression.
eval()
doesn’t handle statements, only expressions.
exec()
handles statements but doesn’t give a way to retrieve a value if the statement is an expression.
It seems that eval(compile(x, '<string>', 'single'))
is almost what I need, but it prints a non-None return value instead of returning it.
Is there a way to do this?