Python: Питон высокого полета...

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

Python — объектно-ориентированный язык сверхвысокого уровня. Python, в отличие от Java, не требует исключительной объектной ориентированности (где все принадлежит классам). Однако классы в языке настолько просты, что изучить их может даже неискушенный пользователь. Python поддерживает множественное наследование, переопределение операторов, причем можно переопределять операцию как для левого операнда, так и для правого.
Правильную работу программы осуществляет гибкая система перехвата ошибок. Встроенные механизмы позволяют опрашивать интерфейсы объектов во время выполнения программы. К примеру, можно узнать количество и параметры функции во время выполнения программы.
Из современных языков программирования Python можно сравнить с Java и Perl. Python так же хорошо переносим, как и эти языки. Существует реализация как для основных платформ — UNIX, Linux, Windows, так и для менее распространенных — Mac, Amiga, Palm, RiscOS, AS/400. Для особых любителей Java (к каковым отношусь и я) есть Jython. Он состоит из двух частей: во-первых, это интерпретатор, написанный на Java, а во-вторых, это компилятор Python в байт-код Java. В сравнении с Perl, Python равен ему по мощности и возможностям, а также избавлен от многих неприятностей и излишеств. К тому же в Python хорошая стандартная библиотека и невероятно большое количество модулей, предназначенных для решения уже конкретных задач. Для недоверчивых любителей Windows существует пакет win32, в котором реализованы практически все функции Windows API, DDE, COM.
Основные элементы управления. Python — язык классического направления. В нем используются конструкции, которые стали привычными многим программистам: условный оператор if, циклы for и while, функции, классы, модули, пакеты. Правда, нет цикла do-while и оператора вет-вления case.
Для многих будет неожиданностью, что в Python блочная структура обозначается отступами, а не словами (begin/end) или скобками. Однако разработчики, на мой взгляд, убили двух зайцев одним выстрелом — сделали блочную структуру и... улучшили читабельность кода (многим программистам этого не хватает).
Базовые типы данных. Базовых типов несколько: целое, длинное целое, вещественное, комплексные числа, строки, списки, кортежи и словари.
Целое в Питоне соответствует типу long. Длинное целое — это целое бесконечной длины. С помощью таких чисел можно производить вычисления неограниченной разрядности, этот тип эмулируется библиотекой, встроенной в интерпретатор. Вещественное соответствует типу double. Комплексные числа — это пара вещественных, которые могут быть записаны в следующем виде: 15 + 2j.
Строки — это последовательности символов. Строки подразделяются на ASCII и Unicode, которые можно перекодировать друг в друга. Кроме того, ASCII строки можно кодировать разными кодировками.
Списки — это коллекция объектов. Списки имеют неограниченную длину, в них могут быть добавлены и удалены из них любые объекты. Все списки одномерные. Если понадобилось создать многомерный список, то существует понятие списка списков.
Словари или ассоциативные массивы — это объект или значение, которому ставится в соответствие ключ — другой неизменяемый объект.
Изменяемые и неизменяемые объекты; адресная арифметика и ссылки. Объекты бывают двух типов: изменяемые и неизменяемые. Списки, как уже говорилось, — объекты изменяемые, существует возможность изменять как сам список, так и его элементы. Но в Питоне существует тип неизменяемых списков объектов — кортежи. Также неизменяемыми являются строки. Что касается адресной арифметики, то ее попросту нет. Поэтому разыменовать нулевой указатель невозможно. Ссылки в Питоне, конечно же, есть. Все переменные в языке — это ссылка на объект, поэтому присвоение одной переменной другой означает: скопировать ссылку из одной переменной в другую. Присвоение и разыменование ссылок производится автоматически.
Каждый объект в Питоне хранит счетчик ссылок, и при каждом копировании счетчик увеличивается. Счетчик того объекта, ссылка у которого исчезла, уменьшается. Когда счетчик уменьшается до 0, объект считается неиспользуемым, для него вызывается деструктор, и память объекта освобождается. Это механизм автоматической сборки мусора. Существует Русскоязычная Группа Пользователей Python. Сайт группы расположен по адресу http://zope.net.ru .
В заключение хотелось бы отметить, что это язык, который стоит того, чтобы его выучить, на нем писать. Он прост в использовании. Знание этого языка на Западе дает гарантированную высокооплачиваемую работу. Так что дерзайте... По материалам http://www. softerra.ru/

Дмитрий Пачинин
aka Windmaster
windmaster@tut.by



Компьютерная газета. Статья была опубликована в номере 13 за 2002 год в рубрике программирование :: разное

©1997-2024 Компьютерная газета