Чтобы понять, как выразительность Python упрощает код, возьмем задачу переста-новки значений двух переменных, var1 и var2 . В таком языке, как Java, для этого потребуются три строки кода и лишняя переменная: int temp = var1;
var1 = var2;
var2 = temp;
Переменная temp необходима для хранения значения переменной var1 в то время, когда в ней хранится var2 , и последующего его сохранения в var2 . Процесс не осо-бенно сложен, но чтобы прочитать эти три строки и понять, что произошла пере-становка, даже опытному программисту придется немного поразмыслить. С другой стороны, Python позволяет выполнить ту же перестановку в одной строке, причем так, что читатель кода сразу понимает, что значения меняются местами: var2, var1 = var1, var2
Конечно, это очень простой пример, но аналогичные возможности постоянно встречаются в языке.
1.2.3. Удобочитаемость кода Python
Еще одно преимущество кода Python заключается в том, что он легко читается. Ка-залось бы, язык программирования предназначен для компьютера, но людям тоже приходится читать ваш код: тем, кто занимается отладкой вашего кода (возможно, это будете вы), тем, кто занимается сопровождением вашего кода (опять-таки это можете быть вы), тем, кто будет изменять этот код в будущем. Во всех этих ситуа-
циях чем понятнее будет код и чем проще он читается, тем лучше. Чем понятнее код, тем проще он в отладке, сопровождении и модификации. Главное преимущество Python в этом отношении — использование отступов. В отличие от многих других языков, Python требует , чтобы блоки кода снабжались отступами. Кому-то это требование может показаться странным, но оно гарантирует, что ваш код всегда будет отформатирован в очень простом и удобочитаемом стиле. Ниже приведены две короткие программы: одна написана на Perl, а другая на Python. Обе программы получают списки чисел одинакового размера и возвращают парную сумму этих списков. На мой взгляд, код Python читается лучше, чем код Perl; он визуально чище и содержит меньше невразумительных знаков: # Версия Perl.
sub pairwise_sum {
my($arg1, $arg2) = @_;
my @result;
for(0 .. $#$arg1) {
push(@result, $arg1->[$_] + $arg2->[$_]);
}
return(\@result);
# Версия Python.
def pairwise_sum(list1, list2):
result = []
for i in range(len(list1)):
result.append(list1[i] + list2[i])
return result
Оба фрагмента делают одно и то же, но код Python побеждает в отношении удобо-читаемости. (Конечно, на Perl то же можно сделать и другими способами, многие из которых гораздо компактнее приведенного, — но в моем представлении они читаются хуже.)
1.2.4. Полнота Python — «батарейки в комплекте»Еще одно преимущество Python — его философия «батарейки в комплекте» относи-тельно библиотек. Идея заключается в том, что при установке Python вы получаете все необходимое для реальной работы, и устанавливать дополнительные библиоте-ки уже не потребуется. Вот почему стандартная библиотека Python поставляется с модулями для работы с электронной почтой, веб-страницами, базами данных, функциями операционной системы, построения графического интерфейса и т. д. Например, на языке Python веб-сервер для обеспечения совместного доступа к файлам в каталоге состоит всего из двух строк кода: import http.server
http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler) Нет необходимости устанавливать библиотеки для обработки сетевых подключений и поддержки HTTP, вся функциональность уже доступна в Python.
1.2.5. Кроссплатформенность
Python также является превосходным кроссплатформенным языком. Python работает на многих платформах: Windows, Mac, Linux, UNIX и т. д. Так как язык является интерпретируемым, один код может выполняться на любой платформе с интерпретатором Python, а сейчас он есть практически на всех современных платформах. Существуют даже версии Python, работающие на базе Java (Jython) и .NET (IronPython), что дополнительно расширяет круг возможных платформ для запуска Python.
1.2.6. Свободное распространение
Наконец, за Python не нужно платить. Python изначально разрабатывался (и про-должает разрабатываться) на базе модели открытого исходного кода и свободного распространения. Вы можете загрузить и установить практически любую версию Python, использовать ее для разработки коммерческих или личных приложений, и вам ни копейки не придется платить за это.
Хотя обстановка постепенно меняется, некоторые люди до сих пор опасаются бес-платных продуктов и недостаточного уровня поддержки по сравнению с платной моделью. Тем не менее для многих авторитетных компаний Python стал ключевой частью бизнеса. Google, Rackspace, Industrial Light & Magic, Honeywell — и это лишь несколько примеров. Эти и многие другие компании справедливо считают Python очень надежным, стабильным и хорошо поддерживаемым продуктом с активным и знающим сообществом пользователей. В интернет-группах Python даже на самый трудный вопрос можно получить ответ быстрее, чем на большинстве телефонных линий технической поддержки, причем ответ будет правильным и бесплатным. PYTHON И ПРОДУКТЫ С ОТКРЫТЫМ КОДОМ
Читать дальше