Функция compile( ) в Python

Обложка к статье "Функция compile( ) в Python"

Функция compile в Python используется для компиляции исходного кода в объект кода, который может быть выполнен функциями exec() или eval(). Это мощный инструмент для динамической генерации и выполнения кода.

Синтаксис

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Параметры

  • source: Строка с исходным кодом, абстрактное синтаксическое дерево (AST) или объект кода.
  • filename: Имя файла исходного кода. Используется для сообщений об ошибках.
  • mode: Один из режимов компиляции:
    • 'exec': Компилирует код для выполнения операторов.
    • 'eval': Компилирует код для вычисления одного выражения.
    • 'single': Компилирует код для выполнения одного оператора (например, в интерактивной среде).
  • flags: Дополнительные опции для компилятора (например, активация будущих функций).
  • dont_inherit: Указывает, следует ли наследовать опции компиляции из текущего окружения.
  • optimize: Уровень оптимизации кода (0, 1 или 2).

Возвращаемое значение

Функция возвращает объект кода, который может быть выполнен с помощью exec() или eval().

Примеры использования

Пример 1: Компиляция и выполнение кода с помощью exec

source_code = """
def greet(name):
    return f'Hello, {name}!'
"""

code_object = compile(source_code, 'greet_code', 'exec')
exec(code_object)

# Теперь функция `greet` доступна для использования
print(greet('Alice'))  # Вывод: Hello, Alice!

Пример 2: Компиляция и выполнение выражения с помощью eval

source_expr = "3 * 4 + 5"
code_object = compile(source_expr, 'simple_expr', 'eval')
result = eval(code_object)
print(result)  # Вывод: 17

Пример 3: Компиляция и выполнение одного оператора

source_single = "print('This is a single statement')"
code_object = compile(source_single, 'single_stmt', 'single')
exec(code_object)  # Вывод: This is a single statement

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий