Метод 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()
метода.