exec()
Функция exec() в Python используется для динамического выполнения программного кода, представленного в виде строки или объекта кода.
Назначение: Основная цель функции exec() - выполнить указанный программный код в текущей среде выполнения. Это позволяет динамически создавать и выполнять код во время работы программы.
Что возвращает: Функция exec() не возвращает никакого значения напрямую. Вместо этого она выполняет переданный код в текущей среде выполнения, что может привести к изменению глобальных или локальных переменных, вызову функций и другим побочным эффектам.
Описание: Синтаксис функции exec() следующий:
exec(object, globals=None, locals=None)- object- это строка или объект кода, содержащий программный код Python для выполнения.
- globals(необязательный) - словарь, представляющий глобальную область видимости для выполняемого кода.
- locals(необязательный) - словарь, представляющий локальную область видимости для выполняемого кода.
Обратите внимание, что использование exec() с недоверенными данными может представлять риск для безопасности, так как это позволяет выполнять произвольный код.
Примеры использования:
- Выполнение простого кода 
- Выполнение кода с определением функции 
- Использование - exec()с глобальной и локальной областями видимости
- Динамическое создание классов 
- Выполнение кода из пользовательского ввода (не рекомендуется по соображениям безопасности) 
exec("print('Hello, World!')")  # Выведет "Hello, World!"exec("""
def greet(name):
    print(f"Hello, {name}!")
""")
greet("Alice")  # Выведет "Hello, Alice!"globals_dict = {"x": 5}
locals_dict = {"y": 10}
code = "result = x + y"
exec(code, globals_dict, locals_dict)
print(locals_dict["result"])  # Выведет 15class_definition = """
class MyClass:
    def __init__(self, value):
        self.value = value
    def get_value(self):
        return self.value
"""
exec(class_definition)
obj = MyClass(42)
print(obj.get_value())  # Выведет 42user_input = input("Введите код Python: ")
exec(user_input)Функция exec() полезна в ситуациях, когда необходимо динамически выполнять код во время работы программы, например, при создании интерпретаторов, реализации встраиваемых языков, динамическом генерировании кода или метапрограммировании. Однако ее следует использовать с осторожностью, так как она позволяет выполнять произвольный код, что может представлять риск для безопасности, если код получен из недоверенных источников.
Последнее обновление
