все Python 3Встроенные функциипонятие
eval
выполнение
Вычисляет выражение из строки. ВНИМАНИЕ: небезопасен для ненадёжного ввода!
Синтаксис
eval(expression[, globals[, locals]])
eval считает ровно одно выражение и возвращает его значение — присваивания, if и циклы туда не пролезут, для них нужен exec. Ограничить вред подменой globals не выйдет: даже из урезанного словаря добираются до встроенных функций и __import__, поэтому единственная защита — не пускать в eval чужие строки. Когда надо разобрать введённое число или литерал, берите int(), float() или ast.literal_eval(), который понимает только константы и не исполняет код.
Примеры
print(eval('2**10')) # → 1024
print(eval('[x**2 for x in range(5)]')) # → [0,1,4,9,16]
x = 10
print(eval('x + 5')) # → 15
print(eval('1+2', {})) # → 3 (пустой globals)
print(eval('abs(-5)', {'abs':abs})) # → 5
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности