Метод compile () возвращает объект кода Python из источника (обычную строку, байтовую строку или объект AST).
Синтаксис compile():
компиляция (источник, имя файла, режим, флаги = 0, dont_inherit = False, optimize = -1)
compile() используется, если код Python имеет строковую форму или является объектом AST, и вы хотите изменить его на объект кода.
Объект кода, возвращаемый compile()методом, позже может быть вызван с помощью таких методов, как exec () и eval (), которые будут выполнять динамически сгенерированный код Python.
compile () Параметры
source- обычная строка, байтовая строка или объект ASTfilename- файл, из которого был прочитан код. Если оно не было прочитано из файла, вы можете дать имя самостоятельноmode- Либоexecили,evalлибоsingle.eval- принимает только одно выражение.exec- Это может быть блок кода, содержащий операторы Python, классы, функции и т. Д.single- если он состоит из одного интерактивного оператора
flags(необязательно) иdont_inherit(необязательно) - контролирует, какие будущие утверждения повлияют на компиляцию источника. Значение по умолчанию: 0optimize(необязательно) - уровень оптимизации компилятора. Значение по умолчанию -1.
Возвращаемое значение из compile ()
compile() метод возвращает объект кода Python.
Пример: как работает compile ()?
codeInString = 'a = 5b=6sum=a+bprint("sum =",sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)
Вывод
сумма = 11
Здесь источник находится в обычной строковой форме. Имя файла - sumstring. Более того, execрежим позже позволяет использовать exec()метод.
compile () преобразует строку в объект кода Python. Затем кодовый объект выполняется с использованием exec()метода.








