Метод compile () повертає об'єкт коду Python з джерела (звичайний рядок, байтовий рядок або об'єкт AST).
Синтаксис compile()
:
компіляція (джерело, ім'я файлу, режим, прапори = 0, dont_inherit = False, оптимізувати = -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
Тут джерело знаходиться у звичайній рядковій формі. Ім'я файлу - підсумок. І exec
згодом режим дозволяє використовувати exec()
метод.
метод compile () перетворює рядок на об'єкт коду Python. Потім об'єкт коду виконується за допомогою exec()
методу.