М. Лутц - Изучаем Python (4-е издание)- 2011 (1126907), страница 14
Текст из файла (страница 14)
Изменения в языке принимаются только после прохождения формальной процедуры54Глава 1. Python в вопросах и ответах(известной как «программа совершенствования продукта», или PEP) и тщательно проверяются формальной системой тестирования и самим Пожизненным Диктатором. Это обеспечивает большую степень консерватизма Pythonв отношении изменений, по сравнению с некоторыми другими языками программирования.Он переносимСтандартная реализация языка Python написана на переносимом ANSI C,благодаря чему он компилируется и работает практически на всех основныхплатформах. Например, программы на языке Python могут выполняться на самом широком спектре устройств, начиная от наладонных компьютеров (PDA)и заканчивая суперкомпьютерами. Ниже приводится далеко неполный списокоперационных систем и устройств, где можно использовать Python:•• Операционные системы Linux и UNIX•• Microsoft Windows и DOS (все современные версии)•• Mac OS (обе разновидности: OS X и Classic)•• BeOS, OS/2, VMS и QNX•• Системы реального времени, такие как VxWorks•• Суперкомпьютеры Cray и ЭВМ производства компании IBM•• Наладонные компьютеры, работающие под управлением PalmOS, PocketPCили Linux•• Сотовые телефоны, работающие под управлением операционных системSymbian и Windows Mobile•• Игровые консоли и iPod•• И многие другиеПомимо самого интерпретатора языка в составе Python распространяетсястандартная библиотека модулей, которая также реализована переносимымспособом.
Кроме того, программы на языке Python компилируются в переносимый байт-код, который одинаково хорошо работает на любых платформах,где установлена совместимая версия Python (подробнее об этом будет рассказываться в следующей главе).Все это означает, что программы на языке Python, использующие основныевозможности языка и стандартные библиотеки, будут работать одинаково и вLinux, и в Windows, и в любых других операционных системах, где установленинтерпретатор Python.
В большинстве реализаций Python под определенныеоперационные системы имеется также поддержка специфических механизмов этих систем (например, поддержка COM в Windows), но ядро языка Pythonи библиотеки работают совершенно одинаково в любой системе. Как уже говорилось выше, Python включает в себя средства создания графического интерфейса Tk GUI под названием tkinter (Tkinter в Python 2.6), что позволяетпрограммам на языке Python создавать графический интерфейс, совместимыйсо всеми основными графическими платформами без индивидуальной программной настройки.В чем сильные стороны Python?55Он мощныйС точки зрения функциональных возможностей Python������������������������������������������������можно назвать гибридом.
Его инструментальные средства укладываются в диапазон между традиционными языками сценариев (такими как Tcl, Scheme и Perl) и языками разработки программных систем (такими как C, C++ и Java). Python обеспечиваетпростоту и непринужденность языка сценариев и мощь, которую обычно можно найти в компилирующих языках. Превышая возможности других языковсценариев, такая комбинация делает Python удобным средством разработкикрупномасштабных проектов.
Для предварительного ознакомления ниже приводится список основных возможностей, которые есть в арсенале Python:Динамическая типизацияPython����������������������������������������������������������������сам следит за типами объектов, используемых в программе, благодаря чему не требуется писать длинные и сложные объявления в программном коде. В действительности, как вы увидите в главе 6, в языке Pythonвообще отсутствуют понятие типа и необходимость объявления переменных.
Так как программный код на языке Python не стеснен рамками типовданных, он автоматически может обрабатывать целый диапазон объектов.Автоматическое управление памятьюPython автоматически распределяет память под объекты и освобождает ее(«сборка мусора»), когда объекты становятся ненужными. Большинствообъектов могут увеличивать и уменьшать занимаемый объем памяти помере необходимости. Как вы узнаете, Python сам производит все низкоуровневые операции с памятью, поэтому вам не придется беспокоиться об этом.Модульное программированиеДля создания крупных систем Python предоставляет такие возможности,как модули, классы и исключения. Они позволяют разбить систему на составляющие, применять ООП для создания программного кода многократного пользования и элегантно обрабатывать возникающие события и ошибки.Встроенные типы объектовPython предоставляет наиболее типичные структуры данных, такие каксписки, словари и строки, в виде особенностей, присущих самому языкупрограммирования.
Как вы увидите позднее, эти типы отличаются высокой гибкостью и удобством. Например, встроенные объекты могут расширяться и сжиматься по мере необходимости, могут комбинироватьсядруг с другом для представления данных со сложной структурой и многоедругое.Встроенные инструментыДля работы со всеми этими типами объектов в составе Python имеютсямощные и стандартные средства, включая такие операции, как конкатенация (объединение коллекций), получение срезов (извлечение части коллекции), сортировка, отображение и многое другое.Библиотеки утилитДля выполнения более узких задач в состав Python также входит большаяколлекция библиотечных инструментов, которые поддерживают практиче-56Глава 1.
Python в вопросах и ответахски все, что только может потребоваться, – от поиска с использованием регулярных выражений до работы в сети. Библиотечные инструменты языкаPython – это то место, где выполняется большая часть операций.Утилиты сторонних разработчиковPython – это открытый программный продукт и поэтому разработчикимогут создавать свои предварительно скомпилированные инструментыподдержки задач, решить которые внутренними средствами невозможно.В Сети вы найдете свободную реализацию поддержки COM, средств для работы с изображениями, распределенных объектов CORBA�����������������������������������, XML, механизмов доступа к базам данных и многое другое.Несмотря на широкие возможности, Python имеет чрезвычайно простой синтаксис и архитектуру. В результате мы имеем мощный инструмент программирования, обладающий простотой и удобством, присущими языкам сценариев.Он соединяемыйПрограммы на языке Python с легкостью могут «склеиваться» с компонентами, написанными на других языках программирования.
Например, прикладной интерфейс C API в Python позволяет программам на языке C вызыватьи быть вызываемыми из программ на языке Python. Из этого следует, что выможете расширять возможности программ на языке Python и использоватьпрограммный код на языке Python в других языковых средах и системах.Возможность смешивать Python с библиотеками, написанными на таких языках, как C или C++, например, превращает его в удобный язык для созданияинтерфейсов к этим библиотекам и в средство настройки программных продуктов.
Как уже говорилось выше, все это делает Python прекрасным средством разработки прототипов – система может быть сначала реализована наязыке Python, чтобы повысить скорость разработки, а позднее в зависимостиот требований к производительности системы по частям перенесена на язык C.Он удобенЧтобы запустить программу на языке Python, достаточно просто ввести ееимя. Не требуется выполнять промежуточную компиляцию и связывание, какэто делается в языках программирования, подобных C или C++.
Интерпретатор Python немедленно выполняет программу, что позволяет производитьпрограммирование в интерактивном режиме и получать результаты сразу жепосле внесения изменений – в большинстве случаев вы сможете наблюдать эффект изменения программы с той скоростью, с которой вы вводите измененияс клавиатуры.Безусловно, скорость разработки – это лишь один из аспектов удобства Python.Кроме того, он обеспечивает чрезвычайно простой синтаксис и набор мощныхвстроенных инструментов.
Поэтому некоторые даже называют Python «исполняемым псевдокодом». Поскольку большая часть сложностей ликвидируетсядругими инструментами, программы на языке Python проще, меньше и гибчеэквивалентных им программ, написанных на таких языках, как C, C++ и Java!Какими преимуществами обладает Python перед языком X? 57Он прост в изученииЭто самый важный аспект данной книги: по сравнению с другими языкамипрограммирования базовый язык Python очень легко запоминается. В действительности вы сможете писать на языке Python более или менее значимыепрограммы уже через несколько дней (или даже через несколько часов, если выуже опытный программист). Это отличная новость для разработчиков, стремящихся изучить язык для применения его в своей работе, а также для конечныхпользователей, которые применяют Python для настройки или управленияпрограммным продуктом.Сегодня многие системы исходят из того, что конечные пользователи могутбыстро изучить Python в достаточной степени, чтобы самостоятельно создатьсвой собственный программный код настройки системы при незначительнойподдержке со стороны разработчика.
И хотя в Python имеются сложные инструменты программирования, основа языка по-прежнему остается простойдля изучения как начинающими, так и опытными программистами.Он назван в честь Монти ПайтонаЭто не имеет отношения к технической стороне дела, но похоже, что эта тайна, которую я собираюсь открыть, на удивление хорошо охраняется. Несмотряна то, что на эмблеме Python изображена рептилия, правда состоит в том, чтосоздатель Python, Гвидо ван Россум, назвал свое детище в честь комедийного сериала «Летающий цирк Монти Пайтона» (Monty Python’s Flying Circus),который транслировался по телеканалу BBC.
Он большой поклонник МонтиПайтона, как и многие программисты (похоже, что между разработкой программного обеспечения и цирком есть что-то общее).Это обстоятельство неизбежно добавляет юмора в примеры программного кодана языке Python. Например, традиционные имена переменных «foo» и «bar»,в языке Python превратились в «spam» и «eggs». Встречающиеся иногда имена«Brian», «ni» и «shrubbery», точно также появились благодаря своим тезкам.Это даже оказывает влияние на сообщество в целом: дискуссии на конференциях по языку Python обычно именуются «Испанская инквизиция».Все это, конечно, очень забавно, если вы знакомы с сериалом, в противном случае это кажется непонятным. Вам не требуется знать сериал, чтобы пониматьпримеры, где используются ссылки на Монти Пайтона (включая многие примеры в этой книге), но, по крайней мере, вы теперь знаете, откуда что берется.Какими преимуществами обладает Pythonперед языком X?Наконец, чтобы разместить язык Python среди уже, возможно, известных вампонятий, сравним Python с другими языками программирования, такими какPerl�������������������������������������������������������������������������, Tcl и �����������������������������������������������������������������Java�������������������������������������������������������������.
Ранее мы уже говорили о проблеме производительности, поэтому здесь мы сосредоточим свое внимание на функциональных возможностях.Другие языки программирования также являются достаточно полезными ин-58Глава 1. Python в вопросах и ответахструментами, чтобы знать и использовать их, но многие программисты находят, что Python:•• Имеет более широкие возможности, чем Tcl. Язык Python поддерживает«программирование в целом», что делает его применимым для разработкикрупных систем.•• Имеет более четкий синтаксис и более простую архитектуру, чем Perl, чтоделает программный код более удобочитаемым, простым в сопровождениии снижает вероятность появления ошибок.•• Проще и удобнее, чем Java. �����������������������������������������������Python����������������������������������������� – это язык сценариев, а ����������������Java������������унаследовала сложный синтаксис от таких языков программирования, как C++.•• Проще и удобнее, чем C++, но нередко он не может конкурировать с C++,поскольку, будучи языком сценариев, Python предназначен для решениядругого круга задач.•• Более мощный и более переносимый, чем Visual Basic.