Функция exec в Python3
Описание
execВыполняет инструкции Python, хранящиеся в строке или файле. По сравнению сeval,execон может выполнять более сложный код Python.
Синтаксис
Ниже приведен синтаксис для exec:
exec(object[, globals[, locals]])
Parameters
- object: Обязательный параметр, представляющий код Python, который нужно указать. Он должен быть строкой или объектом кода. Если object — строка, строка сначала разбирается на набор инструкций Python, а затем выполняется (если не возникает синтаксическая ошибка). Если object — объект кода, он просто выполняется.
- globals: необязательный параметр, представляющий глобальное пространство имён (хранит глобальные переменные). Если указан, должен быть объектом словаря.
- locals: необязательный параметр, представляющий текущее локальное пространство имён (хранит локальные переменные). Если указан, может быть любым объектом отображения. Если этот параметр не указан, он примет то же значение, что и globals.
Возвращаемое значение
Возвращаемое значение exec всегда None.
Примеры
Ниже показаны примеры использования exec:
Пример 1
Пример 2
Вывод:
60 33 34
Возвращаемое значение exec
В Python,execфункция используется для выполнения кода в строке, но она не возвращает никакого значения. Если вы хотите получить возвращаемое значение после выполнения кода, можно использоватьevalфункцию илиexecв сочетании сlocals()илиglobals()чтобы получить значение переменной.
Обратите внимание, что использованиеevalиexecтребует осторожности, особенно когда выполняемый код поступает из недоверенного источника, так как могут возникнуть риски безопасности.
Используйтеevalчтобы получить возвращаемое значение:
Пример
result = eval(code)
print(result)
В этом примере,evalвыполняет строку'2 + 2'и возвращает результат4。
Результат выполнения приведённого выше кода:
4
Используяexecв сочетании сlocals()чтобы получить возвращаемое значение:
Пример
local_vars = {}
exec(code, globals(), local_vars)
result = local_vars['result']
print(result)
В этом примере,execвыполняет строку'result = 2 + 2'и сохраняет результат вlocal_varsв ключе'result'словаря.
Результат выполнения приведённого выше кода:
4
Используяexecв сочетании сglobals()чтобы получить возвращаемое значение:
Пример
global_vars = {}
exec(code, global_vars)
result = global_vars['result']
print(result)
В этом примере,execвыполняет строку'result = 2 + 2'и сохраняет результат вglobal_varsв ключе'result'словаря.
Результат выполнения приведённого выше кода:
4Другие расширения
Встроенные функции Python3