compile(source, filename, mode, flags=0, dont_inherit=False, optimize=- 1)
Компилирует исходный код в объект кода, либо объект АСД (абстрактное синтаксическое дерево). Объект кода может быть выполнен с помощью функций eval или exec.
Параметры
sourceможет быть строкой, последовательностью байт или объектом АСД;filenameфайл, из которого прочитан код. Если код не был прочитан из файла, обычно передается строка"<string>";modeопределяет, какой тип кода должен быть скомпилирован. Если исходный код содержит последовательность инструкций, тоmodeдолжен быть равен"exec".- Если код состоит из одной инструкции, то
"single", а если из одного выражения, то"eval". - Опциональные параметры
flagsиdont_inheritнужны для того, чтобы определить, какие параметры компилятора должны быть активированы и какие инструкции из__future__должны быть разрешены. - Если оба параметра не указаны или равны нуля, то код будет скомпилирован с теми же флагами, что и код, который вызывает
compile;optimizeуказывает уровень оптимизации. Значение-1указывает уровень оптимизации интерпретатора, заданный опциями-O.0— без оптимизации,1убрать инструкцииassert,2— также убрать строки документации.
Возвращаемое значение
Фунция compile() возвращает
- код объекта Python
Примеры
compiled = compile('print("Hello")', '<string>', 'exec')
exec(compiled)