Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 28
Текст из файла (страница 28)
Однако за удобства, которыенесут пространства имен, приходится платить необходимостью перезагружатьмодули после их изменения.Примечание, касающееся различий между версиями: в версииPython 2.6 кроме всего прочего имеется встроенная функцияexecfile(‘module.py’), которая автоматически читает содержимоефайла, как и вызов exec(open(‘module.py’)). Оба эти вызова можноимитировать вызовом exec(open(‘module.py’).read()), которыйхоть и более сложный, но может использоваться в обеих версияхинтерпретатора, 2.6 и 3.0.К сожалению, ни одна из простых форм вызова не доступна в версии 3.0, поэтому, чтобы полностью понять, как действует этотприем, вам необходимо знать, что такое объекты файлов и их методы чтения (увы, похоже, что это один из примеров нарушенияэстетики в версии 3.0).
Форма использования exec в версии 3.0выглядит слишком длинной и сложной, поэтому самый лучшийсовет, какой только можно дать, – вообще не использовать ее,а запускать файлы с помощью команд системной оболочки илис помощью меню в IDLE, как описывается в следующем разделе.Дополнительная информация о применении формы запуска наоснове функции exec в версии 3.0 приводится в главе 9.Пользовательский интерфейс IDLEДо сих пор мы рассматривали запуск программного кода Python с помощьюинтерактивной оболочки интерпретатора, системной командной строки,с помощью щелчка мышью на ярлыке, с использованием операции импортаи функции exec.
Если вам требуется более наглядный подход, программа IDLEможет предложить вам графический интерфейс пользователя (ГИП) для разработки программ на языке Python; IDLE является стандартной и свободнораспространяемой частью системы Python. Обычно она называется интегрированной средой разработки (integrated development environment, IDE), потомучто позволяет решать разнообразные задачи в единой оболочке.11Официально название IDLE считается искаженной аббревиатурой IDE, но в действительности она была названа так в честь члена труппы цирка Монти Пайтона (MontyPython) – Эрика Айдла (Eric Idle).Пользовательский интерфейс IDLE103Проще говоря, IDLE – это набор инструментальных средств с графическим интерфейсом, который способен работать на самых разных платформах, включаяMicrosoft �����������Windows����, ��X� �������������������������������������������������Window�������������������������������������������(в Linux, UNIX и других UNIX-подобных операционных системах) и Mac OS (включая версии Classic и OS X).
Для многихIDLE представляет собой удобную альтернативу командной строке, а такжеальтернативу способу запуска щелчком мыши.Основы IDLEДавайте начнем с примера. Запуск IDLE в операционной системе Windows невызывает проблем – для нее создается отдельный пункт в разделе Python менюкнопки Пуск (Start) (см. рис. 2.1), а кроме того, ее можно запустить, выбравпункт контекстного меню, щелкнув правой кнопкой мыши на ярлыке программы, написанной на языке Python. В некоторых UNIX-подобных системахдля запуска начального сценария IDLE может потребоваться использовать командную строку или щелкнуть мышью на ярлыке файла idle.pyw или idle.py,размещенного в подкаталоге idlelib в каталоге Lib, где установлен интерпретатор Python����������������������������������������������������������������������������������������������������������������������������������.
В Windows ��������������������������������������������������IDLE����������������������������������������������является сценарием Python����������������������������������������������, который по умолчанию находится в каталоге C:\Python30\Lib\idlelib (или C:\Python26\Lib\idlelibв Python 2.6).1На рис. 3.3 показано, как выглядит среда IDLE, запущенная в операционнойсистеме Windows. Окно с заголовком Python Shell (Оболочка Python), которое открывается первоначально, является основным окном среды, в котором запускается интерактивный сеанс работы с интерпретатором (обратите вниманиена приглашение к вводу >>>).
Это самый обычный интерактивный сеанс, который играет роль инструмента проведения экспериментов – программный код,который здесь вводится, исполняется немедленно.В IDLE присутствуют привычные пункты меню, а для выполнения наиболеераспространенных операций можно использовать короткие комбинации клавиш. Чтобы создать (или отредактировать) файл с исходным программным кодом в среде IDLE, откройте окно текстового редактора: в главном окне откройтеменю File (Файл) и выберите пункт New Window (Новое окно), чтобы открыть окнотекстового редактора (или Open… (Открыть) – чтобы отредактировать существующий файл).В книге это недостаточно четко видно, но IDLE обеспечивает подсветку синтаксиса программного кода, который вводится как в главном окне, так и во всехокнах текстового редактора – ключевые слова выделяются одним цветом, литералы другим цветом и так далее.
Это позволяет визуально выделять элементы программного кода. Это поможет вам различать синтаксические элементыпрограммного кода (и даже поможет сразу же замечать ошибки – например,все строки здесь выделяются одним цветом).1IDLE – это программа на языке Python, которая создает графический интерфейс с помощью библиотеки tkinter GUI (Tkinter – в Python 2.6), что обеспечивает ее переносимость, но также означает, что для использования IDLE вам придется обеспечитьподдержку tkinter в Python. Версия Python для Windows обладает такой поддержкой по умолчанию, но некоторым пользователям Linux и UNIX может потребоватьсяустановить соответствующую поддержку tkinter (для этого в некоторых дистрибутивах Linux можно использовать команду yum tkinter, более подробные сведения обустановке вы найдете в приложении A). В системе Mac OS X все необходимое можетбыть уже установлено – поищите на своей машине команду idle.104Глава 3.
Как пользователь запускает программыРис. 3.3. Основное окно интерактивного сеанса работы с интерпретаторомPython в интегрированной среде IDLE, запущенной под управлением операционной системы Windows. Используйте меню «File», чтобы создать («NewWindow»), или изменить («Open…») файл с исходным программным кодом.Для запуска сценария, открытого в окне редактирования, используйте меню«Run» этого окна (пункт «Run Module»)Чтобы запустить файл с программным кодом в среде IDLE, выберите окно, гдередактируется текст, раскройте меню Run (Запустить) и выберите в нем пунктRun Module (Запустить модуль) (или воспользуйтесь соответствующей этому пункту меню горячей комбинацией клавиш). Если с момента открытия или последнего сохранения файла его содержимое изменялось, Python предложитсохранить его.Когда сценарий запускается таким способом, весь вывод, который он генерирует, а также все сообщения об ошибках появляются в основном окне интерактивного сеанса работы с интерпретатором (командная оболочка Python).
Например, на рис. 3.3 последние три строки являются результатом выполнениянашего сценария script1.py, открытого в отдельном окне редактирования. Сообщение «RESTART» говорит о том, что пользовательский процесс был перезапущен с целью выполнить отредактированный сценарий, и позволяет визуальноотделить вывод, полученный от сценария (это сообщение не появляется, еслипользовательский программный код не был запущен в виде дочернего процесса – подробнее об этом режиме рассказывается ниже).Пользовательский интерфейс IDLE105Совет дня: если вам потребуется повторно выполнить командув основном окне интерактивного сеанса в среде IDLE, можно воспользоваться комбинацией Alt-P, выполняющей последовательный переход к началу истории команд, и Alt-N, выполняющейпереход к концу истории команд (в некоторых системах Mac вместо этих комбинаций могут использоваться комбинации Ctrl-Pи Ctrl-N). При нажатии этих комбинаций клавиш вы сможете вызывать предыдущие команды, изменять их и запускать.
Крометого, имеется возможность повторно вызывать команды, позиционируя в них курсор, и использовать операцию «скопироватьи вставить», но часто этот прием оказывается более трудоемким,чем ввод вручную. Вне среды разработки IDLE в ходе интерактивного сеанса работы с интерпретатором в системе Windowsможно повторно возвращаться к предыдущим командам с помощью клавиш управления курсором.Использование IDLEПрограмма IDLE проста в использовании, переносима и доступна в большинстве платформ.
Я обычно рекомендую ее тем, кто только начинает программировать на языке Python, потому что она упрощает некоторые аспекты и непредполагает наличие опыта работы с системной командной строкой. Но, посравнению с некоторыми коммерческими интегрированными средами разработки, она имеет некоторые ограничения. Ниже приводится список особенностей, которые должны приниматься во внимание начинающими пользователями IDLE:•• При сохранении файлов необходимо явно добавлять расширение «.py».Я уже упоминал об этом, когда мы говорили о файлах вообще, но это самыйраспространенный камень преткновения, особенно для пользователей ����Windows. Среда IDLE не выполняет автоматическое добавление расширения .pyк именам сохраняемых файлов.
Не забывайте добавлять расширение .py,когда сохраняете файл в первый раз. В противном случае, вы хотя и сможете запустить свой файл из среды IDLE (а также из системной команднойстроки), но не сможете импортировать его в интерактивную команднуюоболочку или в другой модуль.•• Запускайте сценарии, выбирая пункт меню Run (Запустить) → Run Module (Запустить модуль) в окне редактирования, а не за счет их импортирования илиперезагрузки в окне интерактивного сеанса. Ранее в этой главе было показано, что вполне возможно запустить файл, выполнив операцию импортирования в интерактивной оболочке интерпретатора.
Однако такой способнесет определенные сложности, потому что он требует вручную выполнятьперезагрузку файлов после внесения изменений. В противовес ему пунктменю Run (Запустить) → Run Module (Запустить модуль) всегда приводит к запуску текущей версии файла. Кроме того, в случае необходимости будет предложено сохранить файл (еще одна распространенная ошибка при работе внесреды IDLE).•• Вам по-прежнему может потребоваться выполнять перезагрузку импортируемых модулей.
Пункт меню Run (Запустить) → Run Module (Запустить мо-106Глава 3. Как пользователь запускает программыдуль) в среде IDLE всегда запускает текущую версию только файла верхнегоуровня. Если изменениям подвергались модули, импортируемые сценарием, их необходимо будет перезагрузить вручную в интерактивной оболочке.Но, несмотря на это, использование пункта меню Run (Запустить) → Run Module(Запустить модуль) позволяет избавиться от некоторых ошибок, связанныхс операцией импортирования.