exec(object, globals=None, locals=None, /, *, closure=None)
Динамически исполняет код object.
Параметр object — это строка кода, либо объект кода. Поддерживается ввод данных из файлов (считываются до EOF). Если передана строка, она разбирается в набор инструкций,
который потом исполняется (если отсутствуют синтаксические ошибки). Если передан объект кода, то он исполняется. Необязательные аргументы (см. ниже) могут быть указаны
в виде кортежа прямо после инструкции.
Параметр globals должен быть словарем глобального пространства, относительно которого следует исполнить код. Если словарь не имеет значения по ключу __builtins__,
на это место вставляется ссылка на значение аналогичного атрибута глобального пространства. Модифицировав __builtins__ словаря передаваемого в функцию, вы можете контролировать,
какие из встроенных инструментов будут доступны коду.
Параметр locals также должен быть словарем. Это локальное пространство, в котором следует исполнить выражение. Если не указано, то используется словарь глобального пространства.
Если не указан ни globals, ни locals, то выражение будет выполнено в среде, где был осуществлён вызов функции.
Если дополнительные параметры опущены, код исполняется в текущем пространстве.
Не следует пытаться модифицировать словарь locals (см. описание locals). Если требуется влияние кода, исполненного exec на локальную область, явно передавайте словарь locals.
Параметры
Функция exec() принимает три параметра:
object— либо строка, либо объект кодаglobals(необязательно) — словарьlocals(необязательно) — объект сопоставления (обычно словарь)
Возвращаемое значение
- функция
exec()не возвращает никакого значения.
Примеры
program = 'a = 7\nb=12\nprint("Sum =", a+b)'
exec(program)
# Результат:
Sum = 19