Документация Python неофициальный перевод
Содержание страницы

25.5. IDLE

IDLE – это интегрированная среда разработки и обучения Python.

IDLE имеет следующие возможности:

  • написан на 100% чистом Python с использованием графического инструментария tkinter
  • кроссплатформенность: работает почти одинаково на Windows, Unix и Mac OS X
  • окно оболочки Python (интерактивный интерпретатор) с цветовой подсветкой вводимого кода, вывода и сообщений об ошибках
  • многооконный текстовый редактор с множественной отменой, подсветкой синтаксиса Python, умными отступами, подсказками вызова, автозавершением и другими функциями
  • поиск в любом окне, замена в окнах редактора и поиск по нескольким файлам (grep)
  • отладчик с постоянными точками останова, пошаговым выполнением и просмотром глобального и локального пространства имён
  • настройки, обозреватели и другие диалоговые окна

25.5.2. Редактирование и навигацияEditing and navigation

В этом разделе под «C» подразумевается клавиша Control в Windows и Unix и клавиша Command в Mac OSX.

  • Backspace удаляет символ слева; Del удаляет символ справа

  • C-Backspace удаляет слово слева; C-Del удаляет слово справа

  • Клавиши со стрелками и Page Up/Page Down для перемещения

  • C-LeftArrow и C-RightArrow перемещают по словам

  • Home/End переход к началу/концу строки

  • C-Home/C-End go to begin/end of file

  • Некоторые полезные привязки Emacs унаследованы от Tcl/Tk:

    • C-a начало строки
    • C-e конец строки
    • C-k вырезать строку (но не помещает её в буфер обмена)
    • C-l центрировать окно относительно точки вставки
    • C-b перейти на один символ назад без удаления (обычно для этого также можно использовать клавишу со стрелкой)
    • C-f перейти на один символ вперёд без удаления (обычно для этого также можно использовать клавишу со стрелкой)
    • C-p перейти на строку вверх (обычно для этого также можно использовать клавишу со стрелкой)
    • C-d удалить следующий символ

Стандартные сочетания клавиш (например, C-c для копирования и C-v для вставки) могут работать. Сочетания клавиш выбираются в диалоге Configure IDLE.

25.5.2.1. Автоматические отступыAutomatic indentation

После оператора, открывающего блок, следующая строка получает отступ в 4 пробела (в окне Python Shell – одна табуляция). После некоторых ключевых слов (break, return и т.д.) следующая строка имеет уменьшенный отступ. В начальном отступе Backspace удаляет до 4 пробелов, если они есть. Tab вставляет пробелы (в окне Python Shell – одну табуляцию); количество зависит от ширины отступа. В настоящее время табуляция ограничена четырьмя пробелами из-за ограничений Tcl/Tk.

См. также команды indent/dedent region в меню Edit.

25.5.2.2. АвтодополнениеCompletions

Автодополнение предоставляется для функций, классов и атрибутов классов – как встроенных, так и определённых пользователем. Автодополнение также предоставляется для имён файлов.

Окно автодополнения (ACW) открывается после заданной задержки (по умолчанию две секунды) после ввода точки ‘.’ или (в строке) os.sep. Если после одного из этих символов (плюс ноль или более других символов) нажать Tab, ACW откроется немедленно при наличии возможного продолжения.

Если для введённых символов существует только одно возможное дополнение, Tab предоставит его без открытия окна автодополнения (ACW).

«Show Completions» принудительно открывает окно дополнений; по умолчанию C-space открывает окно дополнений. В пустой строке оно будет содержать файлы из текущего каталога. На пустой строке (blank line) оно будет содержать встроенные и определённые пользователем функции и классы из текущих пространств имён, а также импортированные модули. Если введено несколько символов, ACW попытается предложить более конкретные варианты.

Если ввести строку символов, выбор в окне автодополнения (ACW) перейдёт к записи, наиболее соответствующей этим символам. Ввод табуляции приведёт к тому, что самая длинная недвусмысленная запись будет вставлена в окно редактора или Shell. Две табуляции подряд применят текущий выбор ACW, как и клавиша Return или двойной щелчок. Клавиши курсора, Page Up/Down, выбор мышью, и колёсико прокрутки – всё это работает с окном ACW.

“Скрытые” атрибуты можно получить, введя начало скрытого имени после точки ‘.’, например ‘_’. Это позволяет обращаться к модулям с установленным __all__ или к закрытым атрибутам класса.

Автодополнение и функция «Expand Word» могут сэкономить много ввода!

В настоящее время автодополнение ограничено теми именами, которые есть в пространствах имён. Имена в окне редактора, которые не доступны через __main__ и sys.modules, не будут найдены. Запустите модуль один раз с вашими импортами, чтобы исправить это. Обратите внимание, что сама IDLE помещает немало модулей в sys.modules, так что многое можно найти по умолчанию, например модуль re.

Если вам не нравится, что ACW появляется без запроса, просто увеличьте задержку или отключите расширение.

25.5.2.3. Подсказки вызоваCalltips

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

Подсказка вызова состоит из сигнатуры функции и первой строки строки документации. Для встроенных функций без доступной сигнатуры подсказка состоит из всех строк до пятой строки или первой пустой строки. Эти детали могут измениться.

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

Например, перезапустите Shell и введите itertools.count(. Появится подсказка, потому что Idle импортирует itertools в пользовательский процесс для своих нужд. (Это может измениться.) Введите turtle.write( – ничего не появится. Idle не импортирует turtle. Меню или сочетание клавиш тоже ничего не делают. Введите import turtle, и затем turtle.write( заработает.

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

25.5.2.4. Окно Python ShellPython Shell window

  • C-c прерывает выполняющуюся команду

  • C-d отправляет конец файла; закрывает окно, если введено в приглашении >>>

  • Alt-/ (Развернуть слово) также полезно для уменьшения ввода

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

    • Alt-p извлекает предыдущую команду, соответствующую введённому. В OS X используйте C-p.
    • Alt-n извлекает следующую. В OS X используйте C-n.
    • Return, находясь на любой предыдущей команде, извлекает эту команду

25.5.2.5. Цвета текстаText colors

В Idle по умолчанию чёрный текст на белом фоне, но текст окрашивается в соответствии со смыслом. Для оболочки это: вывод оболочки, ошибки оболочки, вывод пользователя и ошибки пользователя. Для кода Python в приглашении оболочки или в редакторе это: ключевые слова, встроенные имена классов и функций, имена после class и def, строки и комментарии. Для любого текстового окна это: курсор (когда он присутствует), найденный текст (когда возможно) и выделенный текст.

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

25.5.3. Запуск и выполнение кодаStartup and code execution

При запуске с опцией -s IDLE выполнит файл, на который ссылаются переменные окружения IDLESTARTUP или PYTHONSTARTUP. IDLE сначала проверяет IDLESTARTUP; если IDLESTARTUP присутствует, запускается файл, на который она ссылается. Если IDLESTARTUP отсутствует, IDLE проверяет PYTHONSTARTUP. Файлы, на которые ссылаются эти переменные окружения, – это удобные места для хранения функций, часто используемых из оболочки IDLE, или для выполнения операторов импорта для импорта общих модулей.

Кроме того, Tk также загружает файл запуска, если он присутствует. Обратите внимание, что файл Tk загружается безусловно. Этот дополнительный файл – .Idle.py, он ищется в домашнем каталоге пользователя. Операторы в этом файле будут выполняться в пространстве имён Tk, поэтому этот файл не подходит для импорта функций, используемых из оболочки Python IDLE.

25.5.3.1. Использование командной строкиCommand line usage

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinatios and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

Если есть аргументы:

  • Если используется -, -c или r, все аргументы помещаются в sys.argv[1:...], а sys.argv[0] устанавливается в '', '-c' или '-r'. Окно редактора не открывается, даже если это значение по умолчанию, установленное в диалоге Options.
  • В противном случае аргументы – это файлы, открытые для редактирования, и sys.argv отражает аргументы, переданные самой IDLE.

25.5.3.2. Различия между IDLE и консольюIDLE-console differences

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

Например, IDLE обычно выполняет пользовательский код в отдельном процессе от самого графического интерфейса IDLE. Версии sys.stdin, .stdout и .stderr в процессе выполнения получают ввод и отправляют вывод в процесс GUI, который сохраняет контроль над клавиатурой и экраном. Обычно это незаметно, но код, обращающийся к этим объектам, увидит другие значения атрибутов. Кроме того, функции, напрямую обращающиеся к клавиатуре и экрану, не будут работать.

В оболочке IDLE можно вводить, редактировать и вызывать полные операторы. Некоторые консоли работают только с одной физической строкой за раз.

25.5.3.3. Запуск без подпроцессаRunning without a subprocess

По умолчанию IDLE выполняет пользовательский код в отдельном подпроцессе через сокет, использующий внутренний интерфейс loopback. Это соединение не видно извне, и никакие данные не отправляются и не принимаются из Интернета. Если брандмауэр всё равно выдаёт предупреждение, его можно игнорировать.

Если попытка установить сокетное соединение не удалась, Idle уведомит вас. Такие сбои иногда временны, но если они постоянны, проблема может быть либо в блокировке соединения брандмауэром, либо в неправильной конфигурации конкретной системы. Пока проблема не устранена, можно запустить Idle с ключом командной строки -n.

Если IDLE запущен с ключом командной строки -n, он будет работать в одном процессе и не будет создавать подпроцесс, запускающий RPC-сервер выполнения Python. Это может быть полезно, если Python не может создать подпроцесс или сокетный интерфейс RPC на вашей платформе. Однако в этом режиме пользовательский код не изолирован от самого IDLE. Кроме того, среда не перезапускается при выборе Run/Run Module (F5). Если ваш код был изменён, необходимо выполнить reload() для затронутых модулей и повторно импортировать любые конкретные элементы (например, from foo import baz), чтобы изменения вступили в силу. По этим причинам предпочтительнее запускать IDLE с подпроцессом по умолчанию, если это возможно.

Устарело с версии 3.4.

25.5.4. Справка и настройкиHelp and preferences

25.5.4.1. Дополнительные источники справкиAdditional help sources

IDLE включает пункт меню справки под названием «Python Docs», который открывает обширные источники справки, включая учебные пособия, доступные на docs.python.org. Выбранные URL-адреса можно в любое время добавлять или удалять из меню справки с помощью диалогового окна Configure IDLE. Для получения дополнительной информации см. пункт справки IDLE в меню справки IDLE.

25.5.4.2. Настройка параметровSetting preferences

Настройки шрифта, подсветки, клавиш и общие настройки можно изменить через пункт «Настроить IDLE» в меню «Параметры». Клавиши могут быть заданы пользователем; IDLE поставляется с четырьмя встроенными наборами клавиш. Кроме того, пользователь может создать собственный набор клавиш в диалоге «Настройка IDLE» на вкладке «Клавиши».

25.5.4.3. РасширенияExtensions

IDLE содержит механизм расширений. Настройки расширений можно изменить с помощью Configure Extensions. Смотрите начало файла config-extensions.def в каталоге idlelib для получения дополнительной информации. Расширения по умолчанию в настоящее время:

  • FormatParagraph
  • AutoExpand
  • ZoomHeight
  • ScriptBinding
  • CallTips
  • ParenMatch
  • AutoComplete
  • CodeContext
  • RstripExtension