Компилирует исходный код в объект кода, либо объект АСД.
compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
-> Объект кода, либо объект АСД
source -- Строка, строка байт. +py2.6 Или объект АСД.

filename -- Файл, из которого прочитан код. Если код не был считан из файла, можно передать любое значение, например строку '<string>'.

mode -- Режим компиляции кода: 'exec', если код состоит из последовательности инструкций; 'eval', если код содержит одно выражение; 'single', если код состоит из одной инструкции. Если код содержит несколько строк, то при использовании режимов 'single' и 'eval' (а до версии 3.2 ещё и 'exec'), нужно завершить ввод не меньшей мере одним символом перевода строки. +py2.7 Поддержка переводов строк из Windows и Mac.

+py2.3 flags=0 -- Указывает, какие инструкции из __future__ следует использовать. Указывается битами, которые можно ORить, что задать несколько инструкций. Биты можно подсмотреть в __future__._Feature.compiler_flag. См. PEP 236.

+py2.3 dont_inherit=False -- Следует ли использовать __future__ определенные в коде, вызвавшем compile(), в дополнение в тем, что указаны во flags.

+py3.2 optimize=-1 -- Задаёт уровень оптимизации компилятора: '-1' - использовать настройки интерпретатора (регулируются опцией -O); '0' - не оптимизировать, включить __debug__; '1' - убрать инструкции asserts, выключить __debug__; '2' - убрать ещё и строки документации.

Если исходный код содержит ошибку возбуждается исключение SyntaxError, если он содержит нулевые байты — исключение TypeError.

Объекты кода могут быть исполнены при помощи exec() или eval()

Чтобы узнать больше об объектах АСД (Абстрактное Синтаксическое Дерево), обратитесь к документации по модулю ast.

Если требуется разобрать код в его АСД-представление, используйте ast.parse().

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.