Python compile ()

Метод compile () повертає об'єкт коду Python з джерела (звичайний рядок, байтовий рядок або об'єкт AST).

Синтаксис compile():

 компіляція (джерело, ім'я файлу, режим, прапори = 0, dont_inherit = False, оптимізувати = -1)

compile() метод використовується, якщо код Python має форму рядка або є об'єктом AST, і ви хочете змінити його на об'єкт коду.

Потім об'єкт коду, повернутий compile()методом, можна викликати за допомогою таких методів, як: exec () та eval (), які будуть виконувати динамічно генерований код Python.

Параметри compile ()

  • source - звичайний рядок, байтовий рядок або об'єкт AST
  • filename- файл, з якого був прочитаний код. Якщо його не читали з файлу, ви можете вказати ім’я самостійно
  • mode- Або execабо, evalабо single.
    • eval - приймає лише один вираз.
    • exec - Це може приймати блок коду, який містить оператори Python, клас і функції тощо.
    • single - якщо він складається з одного інтерактивного висловлювання
  • flags(необов’язково) та dont_inherit(необов’язково) - контролює, які майбутні висловлювання впливатимуть на компіляцію джерела. Значення за замовчуванням: 0
  • optimize(необов’язково) - рівень оптимізації компілятора. Значення за замовчуванням -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()методу.

Цікаві статті...