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

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

Имитация поведения интерактивного интерпретатора Python

Синтаксис:

import code

code.InteractiveConsole(locals=None, filename="<console>")

Параметры:

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

Описание:

Класс InteractiveConsole() модуля code точно имитирует поведение интерактивного интерпретатора Python.

Этот класс основан на code.InteractiveInterpreter() и добавляет подсказки с использованием знакомых sys.ps1 и sys.ps2 (первичное и вторичное приглашение интерпретатора), а также буферизацию ввода.

Методы объекта InteractiveConsole.

Класс code.InteractiveConsole является подклассом code.InteractiveInterpreter() и поэтому предлагает все его методы, а также следующие дополнения.


InteractiveConsole.interact(banner=None, exitmsg=None):

Метод InteractiveConsole.interact() точно имитирует интерактивную консоль Python.

Необязательный аргумент banner указывает баннер для вывода перед первым взаимодействием. По умолчанию он выводит баннер, аналогичный тому, который печатается стандартным интерпретатором Python (типа Python 3.8.4 ... GCC 8.4.0 и т. п.), за которым следует имя класса (InteractiveConsole) в скобках, чтобы не путать его с реальным интерпретатором - так как он очень похож!

Необязательный аргумент exitmsg указывает сообщение о выходе, которое печатается при выходе. чтобы подавить сообщение о выходе, передайте пустую строку этому аргументу exitmsg=''. Если exitmsg не указан или None, то печатается сообщение по умолчанию.

Новое в Python 3.6: Добавлен аргумент exitmsg.

InteractiveConsole.push(line):

Метод InteractiveConsole.push() передает интерпретатору строку исходного кода line.

Строка line не должна заканчиваться символом новой строки '\n', но она может иметь символы новой строки внутри исходного кода. Строка добавляется к буферу и вызывается метод InteractiveInterpreter.runource() интерпретатора с объединенным содержимым буфера в качестве источника.

Если команда была выполнена или недействительна, то буфер сбрасывается. В противном случае команда является неполной и буфер остается таким, каким он был после добавления строки.

Метод InteractiveConsole.push() возвращает True, если требуется дополнительный ввод и False, если строка каким-либо образом была обработана. Другими словами возвращаемое значение передается от метода InteractiveInterpreter.runource().

InteractiveConsole.resetbuffer():

Метод InteractiveConsole.resetbuffer() удаляет весь необработанный исходный код из входного буфера.

InteractiveConsole.raw_input(prompt=""):

Метод InteractiveConsole.raw_input() печатает подсказку prompt и читает вводимую строку. Возвращаемая методом строка не включает завершающий символ новой строки '\n'.

Когда пользователь вводит последовательность клавиш EOF, возникает ошибка EOFError. Базовая реализация читает строку из sys.stdin.

Пользовательский подкласс может заменить это поведение другой реализацией.