Как использовать IDLE (для версии 0.5)

5 марта 2000 г.

Введение

IDLE - это новая среда разработки для Python, которая впервые вышла в свет вместе с версией Python 1.5.2. Она разрабатывается Гвидо ван Россумом при поддержке, среди прочих, Тима Петерса, Марка Хэммонда, Моше Задка, а сейчас еще и Джереми Хилтона.

Название представляет собой аббревиатуру выражения "Integrated DeveLopment Environment" - "интегрированная среда разработки" (хотя, вероятно, оно связано и с фамилией известного британского комика из популярного британского комедийного шоу). В настоящее время IDLE успешно работает на двух платформах: Unix и Windows.

Окно Python Shell (Оболочка Python) обеспечивает интерактивный режим работы Python. File Editor (Редактор файлов) позволяет создавать новый или просматривать и редактировать уже существующий файл с кодом Python. Есть функция Path Browser (Браузер путей) для нахождения адреса имеющихся файлов модулей, а также простой Class Browser (Браузер классов) для поиска методов классов. В диалоге Find in Files (Найти в файлах) имеется гибкая функция поиска, позволяющая находить в ваших и/или системных файлах определенные идентификаторы или любые другие текстовые фрагменты. Наконец (хотя эта функция еще находится в процессе разработки), есть Debug Control Panel (Панель управления отладкой), выполняющая символьную отладку программ на Python.

Установка и запуск IDLE

IDLE 0.4 был частью дистрибутива Python и устанавливался автоматически во время установки Python 1.5.2. Нужно было только ответить "да" на вопрос об установке Tcl/Tk (поскольку это необходимо для запуска IDLE).

Однако, здесь будет описываться версия IDLE 0.5 (описание версии IDLE 0.4 см. в соответствующей версии этого документа). IDLE 0.5 может быть загружен со следующей страницы:
Загрузочная страница IDLE
Загруженный архив распаковывается в каталог "idle". Он может непосредственно заменить предыдущую версию IDLE 0.4. Например на Windows вы можете переместить папку:
C:\Program Files\Python\Tools\idle
в:
C:\Program Files\Python\Tools\idle4
и переместить/скопировать на ее место новую директорию idle. Именно она будет вызываться из меню Пуск и запускаться в начале работы с версией Python 1.5.2.

Запуск IDLE на Windows

Найдите пункт IDLE (Python GUI) в подменю Python 1.5 из папки Программы вашего меню Пуск и щелкните по нему мышкой. Другой вариант: найти исполняемый файл "idle.pyw" (то есть в C:\Program Files\Python\Tools\idle) и дважды щелкнуть по нему мышью. Должно появиться следующее окно:

Если окно не появляется, возможно, что в PATH неправильно задан Tcl/Tk. Чтобы исправить это в Windows 95/98, откройте в Блокноте файл C:\autoexec.bat и найдите строку, определяющую вашу переменную PATH, то есть:

set PATH=c:\windows;c:\windows\COMMAND

Добавьте ";C:\PROGRA~1\Tcl\bin" в эту строчку, то есть:

Set PATH=c:\windows;c:\windows\COMMAND;C:\PROGRA~1\Tcl\bin

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

В Windows NT можно модифицировать PATH через Панель управления системы.

Также IDLE может не запуститься, если в каталоге '\windows\system' находятся не те DLL-библиотеки Tcl/Tk (то есть из более старой версии Tcl, ранее установленной в системе). Попробуйте удалить все файлы, связанные с Tcl и Tk, из этой папки. Если проблемы все еще остаются, смотрите пост Тима Петерса о проблемах установки Tcl/Tk.

Запуск IDLE на UNIX

На Unix просто наберите "idle" в командной строке. Должно появиться окно, похожее на то, что показано выше. (Если оно не появляется, поищите сценарий "idle" в каталоге Tools/idle дистрибутива Python.)

Использование окна оболочки Python Shell

Окно Python Shell обеспечивает доступ к интерактивному режиму Python. Оно откроется при запуске IDLE.

Как и в прямом интерактивном режиме, вы набираете выражение Python после приглашения >>> и затем нажимаете клавишу Enter, направляя команду в интерпретатор Python. В отличие от обычного интерактивного режима в середине многострочного составного выражения не появляется промежуточного приглашения (...).

Если возникла ситуация, когда все как будто зависло и не появляется нового приглашения, вероятно интерпретатор ждет от вас ввода чего-нибудь особенного (он занят анализом). Нажатие клавиш Ctrl-c вызовет клавиатурное прерывание и вернет вас к приглашению. Этот прием можно использовать для прерывания любой выполняющейся команды.

Подсветка синтаксиса

По мере набирания кода он подсвечивается в соответствии с синтаксическими типами Python.

Как показано выше, комментарии отображаются красным цветом, строки - зеленым, определения - синим, ключевые слова Python - оранжевым и вывод интерпретатора - синим.

Это в основном все, с чем обычно приходится сталкиваться. Однако, между разными типами вывода существует дополнительная дифференциация.

Как показано выше, вывод в консоль (то есть, трейсбэки [Traceback - грубо говоря, информация об ошибке.- Прим.пер.]) коричневого цвета, а вывод стандартной ошибки [Точнее, вывод стандартным устройством вывода сообщений об ошибках.- Прим.пер.] - красного [В современных версиях IDLE оба типа ошибок выводятся красным цветом.- Прим.пер.].

Отступы

Предусмотрена автоматическая поддержка отступов:

Если набрать приведенный выше пример, вы обнаружите, что при нажатии клавиши Enter после операторов def или while следующая строка автоматически сдвигается (как при вводе нового блока). Внутри блока выравнивание осуществляется автоматически по предыдущему выражению (в примере выше это происходит с выражением num = num - 1). Наконец, каждое нажатие клавиши Backspace возвращает каретку к предыдущему уровню отступа (в примере выше это нужно сделать перед вводом выражения return). После выражений pass, return, break, continue или raise возвращение к прежнему отступу происходит автоматически.

Это все, что, как правило, нужно знать об отступах при работе в окне оболочки. Возможно изменять величину отступа (здесь по умолчанию она равна восьми пробелам), а также сдвигать на величину отступа вправо/влево выделенную область. Эти команды описаны в настоящем документе в подразделе Редактирование файла (потому что их чаще используют в окне File Editor).

Перемещение по буферу

Вы можете перемещаться по буферу [Смысл термина "буфер", скажем в редакторе Emacs, поясняется, например, здесь.- Прим. пер.], используя следующие комбинации клавиш.

Действие Клавиши Unix Клавиши Windows Меню
Сдвинуться на одну позицию влево стрелка влево, Ctrl-b стрелка влево, Ctrl-b -
Сдвинуться на одну позицию вправо стрелка вправо стрелка вправо -
Переместиться в начало текущей строки клавиша Home, Ctrl-a клавиша Home, Ctrl-a -
Переместиться в конец текущей строки клавиша End, Ctrl-e клавиша End, Ctrl-e -
Переместиться на одну строчку вверх стрелка вверх, Ctrl-p стрелка вверх, Ctrl-p -
Переместиться на одну строчку вниз стрелка вниз стрелка вниз -
Переместиться на одну страницу вверх клавиша Page Up клавиша Page Up -
Переместиться на одну страницу вниз клавиша Page Down клавиша Page Down -
Переместиться в начало буфера клавиша Ctrl-Home клавиша Ctrl-Home -
Переместиться в конец буфера клавиша Ctrl-End клавиша Ctrl-End -
Переместить выделение в центр окна Ctrl-l Ctrl-l -
Найти заданный элемент Ctrl-u Ctrl-u Ctrl-s Ctrl-f Edit:Find...
Снова найти уже заданный элемент Ctrl-u Ctrl-s Ctrl-g, F3 Edit:Find again
Найти выделение Ctrl-s Ctrl-F3 Edit:Find selection
Перейти на заданную строчку Alt-g, Esc-g Alt-g Edit:Go to line

[В разделе меню Options/Configure IDLE (вкладка Keys) можно переключаться между встроенными наборами клавиатурных комбинаций, настроенных под разные платформы, например под Windows или Unix. Кроме того, можно создать и свой собственный, пользовательский набор.- Прим. пер.]

Функция Edit:Find более подробно описана в этом документе в разделе Поиск/Замена. Команда Edit:Go to line вызывает диалог, запрашивающий номер строки, к которой нужно совершить переход. Остальные функции понятны без комментариев.

Основы редактирования

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

Действие Клавиши Unix Клавиши Windows Меню
Удалить символ слева от курсора клавиша Backspace клавиша Backspace  
Удалить символ справа от курсора клавиша Delete, Ctrl-d клавиша Delete, Ctrl-d  
Вырезать выделение Ctrl-w Ctrl-x Edit:Cut
Вставить в буфер Ctrl-y Ctrl-v Edit:Paste
Копировать выделение Alt-w, Esc-w Ctrl-c Edit:Copy
Выделить весь буфер Alt-a, Esc-a Ctrl-a Edit:Select All
Заменить выделение Ctrl-r Ctrl-h Edit:Replace...
Дополнение (завершение) слова Alt-/ Alt-/ Edit:Expand word
Предыдущая команда в истории команд Esc-p, Alt-p Alt-p  
Следующая команда в истории команд Esc-n, Alt-n Alt-n  
Отменить последнее изменение Ctrl-z Ctrl-z Edit:Undo
Вернуть последнее изменение Alt-z, Esc-z Ctrl-y Edit:Redo

Выведите на экран меню Edit в развернутом виде, и перед вами окажется список всех сочетаний клавиш из этого меню.

В нем есть и кое-какие другие операции (т.е. для "закомментирования" и сдвига фрагментов кода, превращения символов табуляции в пробелы). Но поскольку их чаще используют в редакторе файлов, описание этих операций перенесено в соответствующий раздел этого документа.

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

Функция замены (replace) описана далее в разделе Поиск/Замена данного документа.

Поочередное использование функций undo и redo позволяет отменять и возвращать изменения, сделанные в буфере.

Завершение слов

При наборе комбинации Alt-/ вызывается механизм завершения слов.

В приведенном выше примере в последней строке нет необходимости полностью набирать слово divisible. Можно просто напечатать d и Alt-/, после чего оно будет завершено автоматически.

Завершение базируется на словах, которые уже были введены в буфер. Первым вариантом будет подходящее слово, которое вводилось последним. Последовательно нажимая Alt-/, можно перебрать и остальные возможности. Так, если в вышеприведенном примере после ввода n три раза нажимать Alt-/, будет предлагаться сначала num, потом not и, наконец, numList. Если начинать с nu, число вариантов сократится до num и numList.

История команд

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

Выбрав одну из предшествовавших команд и поместив ее вниз либо перебором (с помощью Alt-p и Alt-n), либо непосредственным выделением, вы сможете отредактировать ее по своему усмотрению перед нажатием клавиши Enter, которое отправит команду на выполнение в интерпретатор.

Подсказки к функциям/методам

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

Окошко остается до тех пор, пока не будет закрыта скобка. Это работает для встроенных функций, любых функций или методов (конструкторов классов) из модулей библиотеки Python, а также для любых пользовательских функций или методов. Однако, это не работает для методов списка, кортежа или словаря.

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

Особые вопросы

Поведение окна оболочки IDLE иногда отличается от обычного интерактивного режима Python. Прежде всего, как уже отмечалось, за один раз можно вставить только одно выражение Python. Перенаправление стандартного ввода и вывода также не всегда происходит как ожидается. Наконец, как следствие реализованной модели событий Tkinter, использование Ctrl-c не всегда приводит к прерыванию исполнения сегмента кода. В ситуациях, когда эти различия становятся принципиальными, всегда можно вернуться к обычному интерактивному режиму Python.

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

Если вы набираете пример кода Tkinter, не делайте последней строкой "mainloop()", которая, в общем-то, необходима при работе из командной строки. Но в оболочке IDLE эта команда приведет к немедленному зависанию, поскольку сам IDLE уже находится в цикле событий Tk.

Наконец, если закрыть окно оболочки, не выходя из IDLE (т.е. еще остаются другие открытые окна), а затем открыть новое окно оболочки, придется заново импортировать и перезагружать каждый модуль, который уже был импортирован, чтобы сделанные в нем и сохраненные изменения вступили в силу. Начать все с чистого листа можно, полностью выйдя из IDLE (с помощью команды Exit (Выход) в меню File).

Использование редактора файлов

Редактор файлов IDLE дает возможность создавать новые, просматривать и/или редактировать существующие файлы с кодом Python.

Открытие файла

Есть несколько способов, как вызвать редактор файлов.

Действие Клавиши Unix Клавиши Windows Меню
Открыть новое окно Ctrl-x Ctrl-n Ctrl-n File:New Window
Открыть существующий файл Ctrl-x Ctrl-f Ctrl-o File:Open...
Открыть модуль Ctrl-x Ctrl-m Alt-m File:Open Module...

Команда New Window (новое окно) откроет пустое окно (т.е., когда вы хотите писать код Python с нуля). Команда Open (открыть) позволяет найти и открыть любой файл на жестком диске, в то время как при использовании команды Open Module (открыть модуль) достаточно ввести название файла модуля (т.е. shelve или shelve.py), находящегося по адресу, указанному в списке каталогов, в которых ведется поиск модуля во время его импорта (sys.path), и нужный файл будет автоматически найден и открыт.

Редактор файлов также может быть вызван из браузера путей (Path Browser) или при использовании отладчика (Debugger), как это описывается ниже в этом документе в соответствующих разделах.

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

Редактирование файла

Набираемый в этом окне код будет подсвечиваться так же, как и в окне оболочки. Точно так же автоматически будут делаться отступы. Однако здесь отступ будет представлять собой четыре пробела (поскольку это стандарт для файлов с кодом Python), в то время как в окне оболочки отступ - это tab. Все операции и клавиатурные сокращения для перемещения и редактирования буфера, описанные в разделе Shell Window этого документа, здесь также могут использоваться (включая вырезание, копирование, вставку и завершение слов).

Есть еще несколько операций редактирования, кроме тех, что были представлены в разделе, посвященном окну оболочки (расскажем о них здесь, поскольку их чаще используют именно в окне редактирования файлов). Над выделенными фрагментами файлов можно проводить следующие действия:

Действие Клавиша Меню
Сдвинуть область Ctrl-] Format:Indent Region
Отменить сдвиг области Ctrl-[ Format:Dedent region
Сделать область комментарием Alt-3 Format:Comment out region
"Раскомментировать" область Alt-4 Format:Uncomment region
Заменить пробелы в области символами табуляции Alt-5 Format:Tabify region
Заменить символы табуляции в области пробелами Alt-6 Format:Untabify region
Форматировать выделение как абзац Alt-q Format:Format Paragraph

Функции отступа очевидно полезны при добавлении или удалении из кода вложенных конструкций. Функция Tabify region превращает пробелы, стоящие в начале строки, в символы табуляции (из 8 пробелов получается 1 символ табуляции). Функция Untabify region конвертирует все символы табуляции в заданной области в соответствующее число пробелов. Наряду с функциями отступа они полезны для преобразования к стандартному формату кода, копируемого из различных источников, таких как документы или веб-страницы. Функция Format Paragraph (форматировать абзац) очень похожа на команду редактора Emacs fill-region (заполнить область); она полезна при работе со строками документации.

Также возможно изменять тип и ширину автоматических отступов.

Действие Клавиши Unix Клавиши Windows Меню
Переключить режим использования символов табуляции Alt-t Alt-t Format:Toggle Tabs
Изменить величину отступа Alt-u Alt-u Format:New indent width

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

Сохранение файла

Если заголовок буфера заключен в звездочки *, это значит, что текст буфера был изменен с момента его последнего сохранения на диск. Есть три команды для сохранения файла.

Действие Клавиши Unix Клавиши Windows Меню
Сохранить Ctrl-x Ctrl-s Ctrl-s File:Save
Сохранить как Ctrl-x Ctrl-w Ctrl-Shift-s File:Save As...
Сохранить копию как Ctrl-x Ctrl-y Alt-Shift-s File:Save Copy As...

Первые две суть стандартные "сохранить под существующим именем" и "сохранить (возможно) под новым именем". Третья - то же самое, что и вторая, только при этом буфер не переименовывается и привязывается к новому имени файла.

Запуск файла

Модуль можно создавать постепенно, сначала импортировав, а затем последовательно перезагружая его в окне оболочки и проверяя по мере внесения изменений. Этого можно добиться, выполняя импортирование или перезагрузку из окна оболочки или используя команду импортирования модуля Import module из самого редактора файлов.

Действие Клавиша Меню
Импортировать/перезагрузить модуль F5 Edit:Import module
Запустить как сценарий Ctrl-F5 Edit:Run script

Функция Import module импортирует или перезагружает модуль, перенаправляя вас в окно оболочки (открывая его, если нужно).

Еще одна возможность для разработчиков - добавить в код функцию для тестирования, которое нужно провести, и воспользоваться командой Run script (запуск сценария). Вывод снова будет перенаправлен в окно оболочки. Однако, код будет запущен как сценарий (т.е. со значением __name__, равным __main__, а не через имя модуля).

Команда Run script выведет в окно оболочки следующее.

Это дает возможность работать в сокращенном цикле "внесения изменений в код": "нажмите Ctrl-s" (чтобы сохранить внесенные изменения), а затем "нажмите Ctrl-F5" (чтобы посмотреть результаты).

Конечно, таким образом можно тестировать и файлы, которые фактически являются сценариями. В настоящее время при запуске команды Run script нельзя задавать опции и параметры командной строки. Тем не менее, всегда можно вставить в свой код простую функцию для тестирования, в которой переменной sys.argv присваивается любое требуемое значение (симулируя вызов командной строки) перед вызовом обычной функции сценария верхнего уровня.

Возможность разрабатывать программы постепенно и быстро тестировать сегменты кода в окне оболочки позволяет гораздо реже использовать символический отладчик по сравнению с другими языками программирования. Однако, случаются времена и ситуации, когда он может оказаться весьма полезным. Механизм символической отладки описывается в этом документе ниже.

Также, разрабатывая приложение Tkinter, не забывайте "закомментировать" вызов "mainloop()" при запуске его из IDLE.

Использование диалогов поиска/замены

Эти диалоги в общем-то интуитивно понятны, но все-таки коротко их опишем.

Поиск

Опция Find... из меню Edit выводит на экран показанное выше диалоговое окно. Установки по умолчанию - это down (следующее) и Wrap around (продолжить с начала), означающие, что поиск в буфере идет по направлению к концу от текущего положения курсора и что, если конец буфера будет достигнут раньше, чем будут найдены искомые символы, поиск продолжится с начала этого файла. Если выбрана опция regular expression (регулярное выражение), введенные вами символы будут расцениваться программой как регулярное выражение. Опции Match case (учитывать регистр) и Whole word (только слово целиком) действуют так, как вы и предполагаете.

Замена

Опция Replace... из меню Edit выводит на экран приведенное выше диалоговое окно. Оно похоже на диалоговое окно поиска Search Dialog за исключением поля ввода Replace with (заменить на) и четырех кнопок в правом верхнем углу. Все это не должно вызывать вопросов.

Поиск в файлах (Find in Files)

Опция Find in Files... из меню Edit выводит на экран приведенное выше диалоговое окно. Если оно запускается из окна оболочки (как это было в случае, показанном на рисунке), по умолчанию будет проведен поиск во всех файлах с расширением *.py во всех каталогах, записанных в переменной поиска Python sys.path. При запуске из редактора файлов поиск по умолчанию будет проводиться в каталоге, где расположен редактируемый файл, и во всех его подкаталогах. Каталог для поиска можно задать вручную, а, чтобы ограничить поиск единственной директорией, достаточно удалить галочку в окошечке Recurse down subdirectories.

С помощью этой функции можно найти, где определен тот или иной класс либо метод, и/или подыскать примеры его использования в системной библиотеке или коде пользователя. В приведенном выше примере ищется определение визуального элемента управления Tkinter Text, а также, где он используется. Найденное показано в виде списка в окне вывода Output Window.

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

Использование браузера путей

Браузер путей (Path Browser) дает возможность искать модули в каталогах, перечисленных в переменной sys.path интерпретатора Python.

Двойной щелчок мышкой по каталогу выводит на экран список модулей. Двойной щелчок по одному из них (т.е. swallow.py на картинке выше) загружает этот файл в окно редактора файлов File Editor, а также отображает список классов в этом файле. Двойной щелчок по одному из классов (т.е. Swallow на картинке выше) выводит список методов, определенных для этого класса (а также перемещает вас к началу определения этого класса в окне File Editor). Если дважды щелкнуть по методу, откроется редактор файлов, в том месте, где приводится описание этого метода. Также возможно один раз щелкнуть по нужному знаку "+" слева, чтобы перейти к следующему уровню в браузере путей без открытия окна редактора файлов.

Обратите внимание, что на платформе Windows в этой версии IDLE (из-за проблемы с нормализацией регистра символов), некоторые каталоги появляются в списке дважды.

Использование браузера классов

В этой версии применяется довольно простой браузер классов (Class Browser).

Он запускается из окна редактора файлов (используя либо опцию Class browser из меню File, либо комбинацию клавиш Alt-c). Вначале показываются классы, определенные в этом файле (т.е. Swallow, African and European в примере выше). Если у какого-то класса есть классы-предки, они перечисляются в скобках после имени этого класса. Выбрав класс, можно узнать методы, "локально" определенные для этого класса (но не те методы, которые он наследует).

Использование механизма отладки

Механизм отладки в IDLE все еще находится в стадии разработки. Например, в настоящей версии для платформы Windows невозможно задать точки прерывания, что ограничивает его использование. В данной версии этого документа я лишь проиллюстрирую использование отладчика на коротком примере.

Простой пример

Начните с создания и сохранения простого модуля, приведенного выше.

  • Запустите окно оболочки, импортируйте модуль примера и задайте переменную numbers, как показано выше.
  • Затем включите опцию Debugger (отладчик) в меню Debug. Это должно привести к выводу панели управления отладкой Debug Control Panel и появлению надписи [DEBUG ON] в вашем окне оболочки (как показано выше)
  • Убедитесь, что в области конфигурации панели управления отладкой отмечены все четыре опции (Stack (стек), Source (код), Locals (локальные переменные) и Globals (глобальные переменные)).
  • Теперь наберите в окне оболочки вызов функции divisible (снова как показано выше).
  • Начните пошагово проводить вычисления (последовательно нажимая кнопку step (шаг) на панели управления отладкой). По достижении модуля dvtest запустится редактор файлов с файлом dvtest.py, и строка, которая будет выполняться следующей, будет подсвечиваться голубым цветом. Также эта строчка будет показана в стековой области панели управления отладкой.
  • Когда вы в первый раз дойдете до строки "if not num % d" (т.е. она подсвечена голубым цветом в редакторе файлов и показана в области стека панели управления отладкой), ваша панель управления отладкой должна выглядеть так, как показано ниже:

Панель управления отладкой (Debug Control)

Клавиши управления

В верхней левой части панели расположены пять кнопок управления.

  • Кнопка Go (запуск) запускает вычисления с текущей точки; остановятся они либо в самом конце, либо по достижении выражения, на котором была установлена точка прерывания.
  • Кнопка Step (который мы до сих пор пользовались) либо запускает на выполнение следующее выражение, либо осуществляет вход во вложенную функцию.
  • Нажатие кнопки Over приводит к выполнению текущего выражения полностью без остановки во вложенных функциях.
  • Кнопка Out запускает вычисления от текущей точки до конца текущей функции и выхода из нее.
  • Кнопка Quit (выход) прекращает выполнение текущего вычисления. При этом система все еще остается в режиме отладки (при следующем вычислении отладчик запустится снова). Чтобы выйти из режима отладки, выключьте опцию Debugger в меню Debug окна оболочки или нажмите кнопку закрытия ("x" в правом верхнем углу) панели управления отладкой. Однако, если вы все еще находитесь в процессе отладки вычислений (а это так, если доступны кнопки панели управления отладкой), для выхода из режима отладки сначала придется прервать вычисления (т.е. нажать на кнопку Quit этой панели).

Установки конфигурации

Справа от кнопок находятся четыре опции установок конфигурации. В приведенном выше примере мы отметили их все четыре.

Включение установки Stack выводит на экран стек вызовов. В настоящем примере у нас два уровня. Первый - это вызов из консоли функции divisible, а второй демонстрирует тот факт, что мы находимся на строке "if not num % d" функции divisible.

Включение установки Source вызывает показ строки, которая выполняется в данный момент (подсвеченной голубым цветом), в окне редактора файлов. Если будут встречаться функции из новых файлов, будут запускаться новые окна редактора файлов. В этом примере у нас только одно окно редактора файлов, открытое для dvtest.py с подсвеченной текущей строкой.

Включение установки Local выводит на экран секцию локальных переменных на панели управления отладкой. В ней приводится алфавитный список имен и текущих значений этих переменных в данной точке вычислений. В приведенном выше примере у нас два таких параметра - numList и d наряду с локальной переменной num.

Наконец, включение установки Global выводит на экран секцию глобальных переменных на панели управления отладкой. В ней снова находится алфавитный список. В приведенном выше примере у нас есть четыре внутренних переменных: __builtins__ (словарь, содержащий такие штуки, как встроенные функции и исключения), __doc__ (значение которой - строка документации этого модуля), __file__ (текущий файл) и __name__ (имя текущего модуля) наряду с divisible (имя единственной функции этого модуля). Если бы были другие функции или в этой функции были заданы другие переменные модуля, они также присутствовали бы здесь. Переменная numbers, определенная в окне оболочки, не показывается, поскольку в Python используется статическая область видимости (statically scoped).

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

Информация о состоянии

Под кнопками, но над областью стека располагается область состояния, которая отображается, даже если все остальные установки отключены. В приведенном выше примере она показывает: dvtest.py:4: divisible(), что означает: мы находимся на четвертой строке файла dvtest.py в функции divisible. Если встречается исключение, оно показывается под этой строкой и подсвечивается желтым цветом. Такой случай показан ниже, где мы пытаемся, набрав в окне оболочки 2/0, провести это вычисление под контролем отладчика.


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

Задание точек прерывания

Задать точку прерывания очень просто: в режиме отладки достаточно щелкнуть правой кнопкой мыши по любой строке в окне редактора файлов и выбрать опцию "Set breakpoint" ("Задать точку прерывания"). Эта строка будет подсвечена желтым цветом. При достижении отмеченной строки выполнение программы будет остановлено. Обратите внимание, однако, что в данной версии IDLE на платформе Windows эта функция не работает, и отладчик на точках прерывания останавливаться не будет.

Улучшения и будущее развитие IDLE

Гвидо ван Россум и Джереми Хилтон в настоящее время активно работают над IDLE. Они приветствуют предложения и дополнения. Обсуждение направлений дальнейшего развития может быть найдено в почтовой рассылке "IDLE-dev" ( IDLE-dev Mail List).

Для IDLE можно писать пользовательские расширения. Инструкции Гвидо как это сделать см. в файле: extend.txt.

Если хотите, всегда можно получить самую последнюю (нестабильную) версию IDLE. Есть два способа сделать это. Первый - получить ее (вместе с последней версией остального кода Python) через дерево CVS. Необходимые инструкции можно найти здесь: Python CVS Info.

Второй путь - это воспользоваться действительно хорошим сервисом, поддерживаемым Дэвидом Ашером (David Ascher). Он выкладывает самую последнюю версию IDLE на: IDLE snapshot. На Windows бывают сюрпризы при распаковке. На моей машине файл:
         idle_23_11_99.tar.gz
превращается в:
         idle_23_11_99_tar.tar
и мне приходится переименовывать его обратно после загрузки (конечно, в вашем случае дата будет другой). Кроме того, потребуются инструменты для первой распаковки (т.е. Aladdin Expander на Windows) и для второй (т.е. Winzip на Windows).

Что нового в версии 0.5

Новые свойства в этой версии:
  • В окне Shell появилась новая функциональность - подсказки (call tips).
  • В браузерах Path Browser и Class Browser теперь используется модель с древовидной структурой.
  • Сейчас стало возможным задавать величину отступа и переключаться между режимами использования символов табуляции в отступах.
  • Теперь файлы могут импортироваться как модули или запускаться как сценарии командой из редактора файлов.
  • Стало возможным вызывать IDLE с аргументами командной строки, как и основной интерпретатор Python (см. описание в файле помощи Help и применяйте idle.bat, если работаете на Windows).

Обратная связь

Возможно, в этот документ будут внесены изменения при его адаптации к новым версиям IDLE. Любая обратная связь, касающаяся содержания или формы документа, определенно приветствуется. Меня можно найти по адресу: ddharms@yahoo.com.
Daryl Harms



Автор: Дэрил Хармс
Web-адрес: http://folk.uio.no/hpl/scripting/doc/python/IDLE-doc/idle2.html
Лицензия: CNRI License

Перевод на русский язык: Филипп Занько
Web-адрес перевода: http://www.russianlutheran.org/python/python.html
Лицензия перевода: CNRI License

О замеченных ошибках, неточностях, опечатках просьба сообщать по электронному адресу:
zanko_philipp@mail.ru