English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод compile() преобразует исходный код в объект кода Python (обычный строковый объект, байтовый строковый объект или объект AST).
Синтаксис функции compile():
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
Если Python-код представлен в виде строки или AST-объекта, и вы хотите преобразовать его в объект кода, используйте метод compile().
можно использовать такие методы, какexec() и eval() иМетоды класса для вызова объекта кода, возвращенного методом compile(), которые будут выполнять динамически сгенерированный Python-код.
source - обычная строка, строка байтов или объект AST
filename - файл, из которого читается код. Если код не читается из файла, можно самому назвать
mode - exec или eval или single.
eval - принимает только одно выражение.
exec - может использовать блок кода с Python-операциями, классами и функциями и т.д.
single - если содержит единственную интерактивную команду
flags (по умолчанию) и dont_inherit (по умолчанию) - specify which statements will affect the compilation of the source code. Default value: 0
optimize (по умолчанию) - уровень оптимизации компилятора. По умолчанию -1.
Метод compile() возвращает объект кода Python.
codeInString = 'a = 5 b = 6 sum = a + b print("sum =", sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)
Когда вы запустите этот программ, вывод будет:
sum = 11
здесь,источник (source)в виде обычной строки. Этаимя файлаявляетсяsumstring. И,exec-режим позволяет использовать метод exec() позже.
Метод compile() преобразует строку в объект кода Python. Затем используется метод exec() для выполнения объекта кода.