eval
Разбирает и исполняет указанное выражение.
eval(expression, globals=None, locals=None)
-> Результат выполненного выражения
expression -- Выражение, которое требуется исполнить, в виде строки. Либо объект кода.
globals=None -- Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить выражение. Если указан, но не содержит атрибута __builtins__ данные указанного пространства будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.
locals=None -- Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить выражение. Если не указано, то используется словарь глобального пространства.
globals=None -- Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить выражение. Если указан, но не содержит атрибута __builtins__ данные указанного пространства будут дополнены данными общего глобального пространства, перед разбором выражения. Таким образом, выражение будет иметь доступ ко всем встроенным модулям.
locals=None -- Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить выражение. Если не указано, то используется словарь глобального пространства.
Если оба аргумента опущены, то выражение будет выполнено в среде, где был осуществлён вызов функции.
В случае ошибок возбуждает SyntaxError.
Данная функция также может быть использована для выполнения произвольных объектов кода, например тех, что возвращает compile().
Если объект кода собран в режиме
Функциям
В случае ошибок возбуждает SyntaxError.
x = 1
eval('x+1') # 2
Данная функция также может быть использована для выполнения произвольных объектов кода, например тех, что возвращает compile().
Если объект кода собран в режиме
exec
будет возвращено None
.На заметку
Динамическое исполнение инструкций поддерживается инструкцией (а начиная с +py3.0 функцией) exec().
Функциям
eval()
и exec() можно передавать результаты функций globals() и locals().Внимание
Для безопасного исполнения выражений, содержащих исключительно литералы используйте
ast.literal_eval()
.
Синонимы поиска: eval
В разделе «Встроенные функции»:
abs
all
any
apply
ascii
bin
callable
chr
classmethod
cmp
compile
delattr
dir
divmod
enumerate
exec
filter
format
getattr
globals
hasattr
hash
help
hex
id
input
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print
raw_input
reduce
repr
reversed
round
setattr
sorted
staticmethod
sum
super
unichr
vars
zip
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.