ОСНОВНОЕ

WORDPRESS

Операционные системы

Базы данных

Фреймворк Bootstrap

Года работы над искусственным интеллектом достаточно, чтобы заставить поверить в бога. (Алан.Дж.Перлис)

Как отлаживать Python с интерактивной консоли

FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

Статья опубликована: 1 мая 2017

Как отлаживать Python с интерактивной консоли

Введение

Отладка является частью процесса разработки программного обеспечения, где программисты ищут, а затем решают проблемы, которые мешают программному обеспечению от правильного запуска.

Полезный и быстрый инструмент для отладки являетсямодуль codeв Python, так как он может быть использован для эмуляции интерактивного интерпретатора. Модуль также предоставляет возможность экспериментировать с кодом , который вы пишете в Python.

Понимание модуляcode

Вместо того, чтобы пройти через код с помощью отладчика, вы можете добавить модульcodeв программу Python, чтобы настроить программу , остановить выполнение и ввести в интерактивный режим для того, чтобы изучить, как работает ваш код. Модульcodeявляется частью стандартной библиотеки Python.

Это полезно, потому что вы можете использовать интерпретатор без ущерба сложности и неизменности, которое программирование могут обеспечить. Благодаря помощи модуляcodeвы можете избежать использования заявления print()на протяжении всей отладки кода, которая может стать громоздкой с течением времени.

Для того, чтобы использовать модуль в качестве метода для отладки, вы можете использовать функциюinteract()модуля, который останавливает выполнение программы в точке, в которой она указывается, и предоставляет вам интерактивную консоль, так что вы можете проверить состояние вашей программы.

Функция с ее возможными параметрами являются следующие:

 

Эта функция запускает цикл read-eval-print и создает экземпляр объекта класса InteractiveConsole, который эмулирует поведение интерпретатора Python.

Необязательные следующие параметры:

  • banner может быть установлен в строку, так что вы можете отметить, где интерпретатор запускает
  • readfuncможет быть использована в качестве метода InteractiveConsole.raw_input()
  • local установит пространство имен по умолчанию для цикла интерпретатора
  • exitmsg может быть установлен на строку, чтобы отметить, где заканчивается интерпретатор

С параметромlocal, вы можете использовать, например:

  • local=locals() для локального пространства имен
  • local=globals() для глобального пространства имен
  • local=dict(globals(), **locals()) использовать как глобальное пространство имен и текущее локальное пространство имен

Обратите внимание, что параметрexitmsgявляется новым в Python 3.6, так что если вы используете старую версию Python, обновите его или укажите параметрexitmsg.

Вы можете поместить функциюinteract()везде, где вы хотели бы в вашей программе запуск интерактивного интерпретатора в коде.

Работа с модулемcode

Давайте посмотрим на это в контексте программы под названием balances.py. Мы зададим параметр local вlocals()чтобы установить пространство имен для локальных.

balances.py

 

Мы использовали функцию code.interact()с параметром local=locals() использовать локальное пространство имен по умолчанию внутри цикла интерпретатора.

Давайте запустим программу выше, используя командуpython3, если мы не в виртуальной среде, или иначе командуpython:

 

После запуска программы, мы получим следующий результат:

 

Ваш курсор будет помещен в конце линии>>>, так же, как это было бы в интерактивной оболочке Python.

Здесь вы можете оформить вызовы для печати переменных, функций и т.д .:

 

Мы видим , что, используя локальное пространство имен, мы можем напечатать переменные и вызвать функцию. Окончательный вызова print()показывает местоположение функции display_balв памяти компьютера.

Как только вы стали удовлетворены работой над изучением интерпретатора, вы можете нажать CTRL + Dна * NIX системах или CTRL + Zдля систем на базе Windows, чтобы оставить консоль и продолжить выполнение программы.

Если вы хотите оставить консоль без запуска оставшейся части программы, вы можете сделать это, набрав , quit()и программа будет прервана.

Для того, чтобы использовать параметрыbannerи exitmsg, мы можем выполнить следующее:

balances.py
 

Когда мы запускаем программу, мы получим следующий результат:

 

Используя параметрbannerпозволяет вам установить несколько точек в пределах вашего кода и даст вам возможность идентифицировать их. Например, вы можете использоватьbannerдля печати"In for-loop"с exitmsg для печати"Out of for-loop", так что вы можете точно сказать, где вы находитесь в коде.

Отсюда, мы можем использовать интерпретатор, как обычно. После этого, когда мы наберем CTRL + Dдля выхода из интерпретатора, мы получим сообщение выхода и функция будет работать в обычном режиме:

 

Программа теперь полностью работает после интерактивного сеанса.

После того, как вы закончите работу при помощи модуляcodeдля отладки кода, вы должны удалить функциюcodeи оператор импорта так, чтобы ваша программа могла работать в обычном режиме. Модульcodeпредоставляет утилиту, так что как только вы все выполнили, необходимо ее убирать.

Вывод

Использование модуляcodeдля запуска интерактивной консоли может позволить вам взглянуть на то, как работает код на детальном уровне, чтобы понять его поведение и вносить изменения по мере необходимости. Чтобы узнать больше об этом, вы можете прочитать официальную документацию модуляcode.

 


Читайте также

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Простая логическая игра "Поймай кота". Задача игры окружить кота точками так, чтобы он не смог убежать с поля. Постигла неудача - начни игру снова!

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close