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 (Python GUI) в подменю Python 1.5 из папки Программы вашего меню Пуск и щелкните по нему мышкой. Другой вариант: найти исполняемый файл "idle.pyw" (то есть в C:\Program Files\Python\Tools\idle) и дважды щелкнуть по нему мышью. Должно появиться следующее окно:
Если окно не появляется, возможно, что в PATH неправильно задан Tcl/Tk. Чтобы исправить это в Windows 95/98, откройте в Блокноте файл C:\autoexec.bat и найдите строку, определяющую вашу переменную PATH, то есть:
Добавьте ";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.
Окно 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, |
- |
Переместиться в конец текущей строки | клавиша End, Ctrl-e | клавиша End, Ctrl-e | - |
Переместиться на одну строчку вверх | стрелка вверх, 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, |
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, |
Ctrl-c | Edit:Copy |
Выделить весь буфер |
Alt-a, |
Ctrl-a | Edit:Select All |
Заменить выделение | Ctrl-r | Ctrl-h | Edit:Replace... |
Дополнение (завершение) слова | Alt-/ | Alt-/ | Edit:Expand word |
Предыдущая команда в истории команд |
|
Alt-p | |
Следующая команда в истории команд |
|
Alt-n | |
Отменить последнее изменение | Ctrl-z | Ctrl-z | Edit:Undo |
Вернуть последнее изменение |
Alt-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... |
Редактор файлов также может быть вызван из браузера путей (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 из самого редактора файлов.
Действие | Клавиша | Меню |
|
|
|
|
|
|
Функция 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... из меню 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 невозможно задать точки прерывания, что ограничивает его использование. В данной версии этого документа я лишь проиллюстрирую использование отладчика на коротком примере.
Начните с создания и сохранения простого модуля, приведенного выше.
В верхней левой части панели расположены пять кнопок управления.
Включение установки 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, провести это вычисление под контролем отладчика.
В этой точке, если продолжать пошаговое исполнение, мы пройдем через процесс создания сообщения об ошибке, которое в итоге будет выведено опять-таки в окно оболочки.
Для 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).
Возможно, в этот документ будут внесены изменения при его адаптации к новым версиям IDLE. Любая обратная связь, касающаяся содержания или формы документа, определенно приветствуется. Меня можно найти по адресу: ddharms@yahoo.com.Daryl Harms
Python для инженеров и исследователей
Автор: Дэрил Хармс
Перевод на русский язык: Филипп Занько
Лицензия перевода: CNRI License
О замеченных ошибках, неточностях, опечатках просьба сообщать по электронному адресу:
russianlutheran@gmail.com