exec
Динамически исполняет указанный код.
exec(obj[, globals[, locals]])
-> None
obj -- Строка кода, либо объект кода. Поддерживается ввод данных из файлов (считываются до EOF). Если передана строка, она разбирается в набор инструкций, который потом исполняется (если отсутствуют синтаксические ошибки). Если передан объект кода, то он исполняется. +py2 Необязательные аргументы (см. ниже) могут быть указаны в виде кортежа прямо после инструкции.
globals -- Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить код. Если locals не передан, будет использован globals. Если словарь не имеет значения по ключу __builtins__, на это место вставляется ссылка на значение аналогичного атрибута глобального пространства. Модифицировав __builtins__ словаря передаваемого в функцию, вы можете контролировать, какие какие из встроенных инструментов будут доступны коду.
locals -- Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить код.
globals -- Ожидается dict. Словарь глобального пространства, относительно которого следует исполнить код. Если locals не передан, будет использован globals. Если словарь не имеет значения по ключу __builtins__, на это место вставляется ссылка на значение аналогичного атрибута глобального пространства. Модифицировав __builtins__ словаря передаваемого в функцию, вы можете контролировать, какие какие из встроенных инструментов будут доступны коду.
locals -- Ожидается объект-отображение (например, dict). Локальное пространство, в котором следует исполнить код.
Если дополнительные параметры опущены, код исполняется в текущем пространстве.
Не следует пытаться модифицировать словарь
x = 1
exec('x = 2')
x # 2
Не следует пытаться модифицировать словарь
locals
(см. описание locals()). Если требуется влияние кода, исполненного exec()
на локальную область, явно передавайте словарь locals
.Внимание
Помните, что инструкции
return
и yield
не могут быть использованы вне определений функций, даже в контексте кода, переданного в exec()
. Возвращаемое значение — None
.Внимание
Помните, что на уровне модуля
globals
и locals
— один и тот же словарь. Если функция получит разные объекты в globals
и locals
, код будет исполнен, как если бы он был расположен в объявлении класса.Переход на Python 3
exec expr in globals # Эквивалентен exec(expr, globals)
exec expr in globals, locals # Эквивалентен exec(expr, globals, locals)
Синонимы поиска: exec
В разделе «Встроенные функции»:
abs
all
any
apply
ascii
bin
callable
chr
classmethod
cmp
compile
delattr
dir
divmod
enumerate
eval
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. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.