import code code.interact(banner=None, readfunc=None, local=None, exitmsg=None)
banner=None
- символы приглашения ввода в консоли,readfunc=None
- функция чтения ввода из консоли,local=None
- пространства имен по умолчанию для интерпретатора,exitmsg=None
- сообщение, которое печатается при выходе из консоли.Функция interact()
модуля code
создана для удобного запуска цикла read-eval-print
в вызываемой консоли.
Функция code.interact()
создает новый экземпляр класса code.InteractiveConsole()
и устанавливает readfunc
для использования в качестве метода InteractiveConsole.raw_input()
, если он предусмотрен.
Если указан аргумент local
, то он передается конструктору InteractiveConsole
для использования в качестве пространства имен по умолчанию для интерпретатора. Затем запускается метод экземпляра InteractiveConsole.interact()
с параметрами banner
и exitmsg
, если это предусмотрено.
После использования (выхода из имитируемой консоли), объект консоли уничтожается.
Изменено в Python 3.6: добавлен параметр exitmsg
.
code.interact()
:Функция code.interact()
многим нравится и очень сильно помогает при интерактивной отладке кода.
Создайте файл interact.py
с кодом, представленном ниже.
# interact.py import code def ff(x): return x - x a = 20 b = ff(a) try: c = a/b except Exception as e: line = f'Ошибка: {e}. Строка №9: c = a/b' code.interact(banner=line, local=locals()) print('Дальнейшее выполнение программы...')
Теперь, если запустить файл из консоли, то в точке вызова этой функции откроется консоль интерпретатора Python. В открывшейся консоли, в реальном времени можно посмотреть значения переменных, присвоить им другие значения, вызвать определенные в коде функции с другими аргументами и т. д.
docs-python@IdeaCentre:~$ python3 interact.py Ошибка: division by zero. Строка №9: c = a/b >>> a 20 >>> b 0 >>> ff(10) 0 >>> ff(20) 0 >>> now exiting InteractiveConsole... Дальнейшее выполнение программы...
Для выхода из консоли:
exit()
.