М. Лутц - Изучаем Python (4-е издание)- 2011 (1126907), страница 13
Текст из файла (страница 13)
Все, что потребуется сделать для этого, – заменить используемый низкоуровневый интерфейс.Стандартный модуль pickle реализует простую систему хранения объектов,что позволяет программам сохранять и восстанавливать объекты Pythonв файлах или в специализированных объектах. В Сети можно также найтисистему, созданную сторонними разработчиками, которая называется ZODB.Она представляет собой полностью объектно-ориентированную базу данныхдля использования в сценариях на языке Python. Существуют также инструменты, такие как SQLObject и SQLAlchemy, которые отображают реляционные таблицы в модель классов языка Python.
Начиная с версии Python 2.5,стандартной частью Python стала база данных SQLite.Быстрое создание прототиповВ программах на языке Python компоненты, написанные на Python и на C, выглядят одинаково. Благодаря этому можно сначала создавать прототипы систем на языке Python, а затем переносить выбранные компоненты на компили-Что можно делать с помощью Python?51рующие языки, такие как C и C++. В отличие от ряда других инструментов разработки прототипов, язык Python не требует, чтобы система была полностьюпереписана, как только прототип будет отлажен.
Части системы, которые нетребуют такой эффективности выполнения, какую обеспечивает C++, можнооставить на языке Python, что существенно упростит сопровождение и использование такой системы.Программирование математическихи научных вычисленийРасширение NumPy для математических вычислений, упоминавшееся выше,включает такие мощные элементы, как объекты массивов, интерфейсы к стандартным математическим библиотекам, и многое другое. Расширение NumPy –за счет интеграции с математическими библиотеками, написанными на компилирующих языках программирования – превращает Python в сложный,но удобный инструмент программирования математических вычислений, который зачастую может заменить существующий программный код, написанный на традиционных компилирующих языках, таких как FORTRAN и C++.Дополнительные инструменты математических вычислений для Python поддерживают возможность создания анимационных эффектов и трехмерныхобъектов, позволяют организовать параллельные вычисления и так далее.Например, популярные расширения SciPy и ScientificPython предоставляютдополнительные библиотеки для научных вычислений и используют возможности расширения NumPy.Игры, изображения, искусственный интеллект,XML роботы и многое другоеЯзык программирования Python можно использовать для решения более широкого круга задач, чем может быть упомянуто здесь.
Например:•• Создавать игровые программы и анимационные ролики с помощью системы pygame•• Обмениваться данными с другими компьютерами через последовательныйпорт с помощью расширения PySerial•• Обрабатывать изображения с помощью расширений PIL, PyOpenGL,Blender, Maya и других•• Управлять роботом с помощью инструмента PyRo•• Производить разбор XML-документов с помощью пакета xml, модуля xmlrpclib и расширений сторонних разработчиков•• Программировать искусственный интеллект с помощью эмулятора нейросетей и оболочек экспертных систем•• Анализировать фразы на естественном языке с помощью пакета NLTK.Можно даже разложить пасьянс с помощью программы PySol.
Поддержкумногих других прикладных областей можно найти на веб-сайте PyPI или с помощью поисковых систем (ищите ссылки с помощью Google или на сайте http://www.python.org).52Глава 1. Python в вопросах и ответахВообще говоря, многие из этих областей применения Python – всего лишь разновидности одной и той же роли под названием «интеграция компонентов».Использование Python в качестве интерфейса к библиотекам компонентов, написанных на языке C, делает возможным создание сценариев на языке Pythonдля решения задач в самых разных прикладных областях.
Как универсальный, многоцелевой язык программирования, поддерживающий возможностьинтеграции, Python может применяться очень широко.Как осуществляется поддержка Python?Будучи популярным и открытым проектом, Python имеет многочисленноеи активное сообщество разработчиков, которые решают проблемы и вносятулучшения со скоростью, которую многие коммерческие разработчики сочлибы поразительной (если не шокирующей). Деятельность разработчиков Pythonкоординируется с помощью системы управления исходными текстами. Изменения в языке принимаются только после прохождения формальной процедуры (известной как «программа совершенствования продукта», или PEP)и должны сопровождаться обширными наборами тестов для системы регрессивного тестирования ���������������������������������������������������Python���������������������������������������������. Фактически в настоящее время работа над ���Python������������������������������������������������������������������мало чем отличается от работы над коммерческими программными продуктами и очень сильно отличается от того, как велась разработка на первыхпорах, когда достаточно было отправить создателю языка письмо по электронной почте.
Но�������������������������������������������������������������самое�������������������������������������������������������������������������������������������������������������������главное�����������������������������������������������������������������������������������������������������преимущество��������������������������������������������������������������������������������проекта����������������������������������������������������������� – огромное��������������������������������������количество������������������до���бровольных помощников.Существует официальная некоммерческая организация PSF (Python SoftwareFoundation��������������������������������������������������������������), которая занимается организацией конференций и решением проблем, связанных с интеллектуальной собственностью.
По всему миру проводится огромное количество конференций, самыми крупными из которых являются OSCON (организатор – издательство O’Reilly) и PyCon (организатор –PSF). Первая из них рассматривает различные открытые проекты, а втораяпосвящена исключительно событиям, связанным с языком Python, которыйпереживает бурный рост в последние несколько лет. Количество посетителейPyCon в 2008 году практически удвоилось по сравнению с предыдущим годом, увеличившись с 586 посетителей в 2007 году до более 1000 посетителейв 2008. Этому удвоению предшествовало 40% увеличение числа посетителейв 2007 году, с 410 человек в 2006.
В 2009 году конференцию PyCon посетили943 человека, немного меньше, чем в 2008, но все равно достаточно много дляпериода глобального кризиса.В чем сильные стороны Python?Естественно – это вопрос разработчика. Если у вас еще нет опыта программирования, язык следующих нескольких разделов может показаться немного непонятным, но не волнуйтесь, мы будем рассматривать все эти термины позднее, в ходе изложения материала.
А для разработчиков ниже приводится краткое введение в некоторые особенности языка Python.В чем сильные стороны Python?53Он объектно-ориентированныйPython���������������������������������������������������������������изначально является объектно-ориентированным языком программирования. Его объектная модель поддерживает такие понятия, как полиморфизм, перегрузка операторов и множественное наследование, однако, учитывая простоту синтаксиса и типизации Python, ООП не вызывает сложностейв применении.
Если эти термины вам непонятны, позднее вы обнаружите, чтоизучать Python гораздо легче, чем другие объектно-ориентированные языкипрограммирования.Объектно-ориентированная природа Python, являясь мощным средствомструктурирования программного кода многократного пользования, крометого, делает этот язык идеальным инструментом поддержки сценариев дляобъектно-ориентированных языков, таких как C++ и Java.
Например, при наличии соответствующего связующего программного кода, программы на языке Python могут использовать механизм наследования от классов, реализованных на C++, Java и C#.Как бы то ни было, но ООП не является обязательным в Python; вы сможете стать опытным программистом и при этом не быть специалистом по ООП.Как и C++, Python поддерживает оба стиля программирования – процедурныйи объектно-ориентированный. Объектно-ориентированные механизмы могутиспользоваться по мере необходимости.
Это особенно удобно при решении тактических задач, когда отсутствует фаза проектирования.Он свободныйPython может использоваться и распространяться совершенно бесплатно. Каки в случае с другими открытыми программными продуктами, такими как Tcl,Perl, Linux и Apache, вы сможете получить в Интернете полные исходные тексты реализации Python. Нет никаких ограничений на его копирование, встраивание в свои системы или распространение в составе ваших продуктов. Фактически вы сможете даже продавать исходные тексты Python, если появитсятакое желание.Но «свободный» не означает «не поддерживается». Напротив, сообществосторонников Python в Интернете отвечает на вопросы пользователей со скоростью, которой могли бы позавидовать большинство разработчиков коммерческих продуктов.
Кроме того, свободное распространение исходных текстовPython способствует расширению команды экспертов по реализации. И хотяпредоставляемая возможность изучать или изменять реализацию языка программирования не у всех вызывает восторг, тем не менее, наличие последнейинстанции в виде исходных текстов придает уверенность. Вы уже не зависитеот прихотей коммерческого производителя – в вашем распоряжении находится полный комплект исчерпывающей документации.Как уже упоминалось выше, разработка Python ведется сообществом, усилиякоторого координируются в основном через Интернет. В состав сообществавходит создатель Python – Гвидо ван Россум (Guido van Rossum), получившийофициальное звание Пожизненного Великодушного Диктатора (BenevolentDictator for Life, BDFL) Python, плюс тысячи других разработчиков.