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)