Сообщить об ошибке.

Класс InteractiveInterpreter() модуля code в Python

Запуск исходника с кодом из скрипта/программы Python

Синтаксис:

import code

code.InteractiveInterpreter(locals=None)

Параметры:

Для передачи нужных параметров смотрите функции locals() и globals().

Возвращаемое значение:

Описание:

Класс InteractiveInterpreter() модуля code занимается синтаксическим анализом и состоянием интерпретатора (пространство имен пользователя). Он не занимается буферизацией ввода, подсказками или именами входных файлов (имя файла всегда передается явно).

Необязательный аргумент locals указывает словарь , в котором будет выполняться код. По умолчанию используется только что созданный словарь с ключом '__name__', установленным на '__console__' и ключом '__doc__', установленным на None.

Методы объекта InteractiveInterpreter:


InteractiveInterpreter.runsource(source, filename="<input>", symbol="single"):

Метод InteractiveInterpreter.runsource() компилирует и запускает какой-нибудь исходник source в интерпретаторе. Аргументы такие же, как для функции модуля code.compile_command().

По умолчанию для имени файла filename используется значение '<input>', а для символа symbol - 'single'. Может произойти одно из нескольких событий:

Возвращаемое значение можно использовать для решения вопроса о том, следует ли использовать sys.ps1 или sys.ps2 (первичное и вторичное приглашение интерпретатора) для запроса следующей строки.

InteractiveInterpreter.runcode(code):

Метод InteractiveInterpreter.runcode() выполняет объект кода code. При возникновении исключения, для отображения отладочной информации вызывается метод InteractiveInterpreter.showtraceback(). Все исключения перехватываются, кроме SystemExit, которому разрешено подниматься.

Примечание: исключение KeyboardInterrupt может возникнуть в любом месте исполняемого кода и не всегда может быть перехвачено.

InteractiveInterpreter.showsyntaxerror(filename=None):

Метод InteractiveInterpreter.showsyntaxerror() отображает только что возникшую синтаксическую ошибку, при этом трассировка стека не отображается (для синтаксических ошибок нет такой трассировки).

Если указано имя файла filename, то оно вставляется в исключение вместо имени файла по умолчанию, которое предоставляется синтаксическим анализатором Python, поскольку он всегда использует '<string>' при чтении из строки.

Вывод записывается методом InteractiveInterpreter.write().

InteractiveInterpreter.showtraceback():

Метод InteractiveInterpreter.showtraceback() отображает только что возникшее исключение. Отображается полная обратная трассировка с цепочкой, а не только первичная трассировка.

Вывод записывается методом InteractiveInterpreter.write().

InteractiveInterpreter.write(data):

Метод InteractiveInterpreter.write() записывает data в стандартный поток ошибок sys.stderr.

Производные классы должны переопределить этот метод, чтобы обеспечить соответствующую обработку выходных данных по мере необходимости.