Евгений Степанищев

Я — эксперт в области разработки веб-приложений и безопасности в интернете. Каждый месяц мой блог посещают около 90 тысяч человек. Работаю техническим директором в «Системах документооборота», занимаюсь электронным правительством.

Python 3.0

Не знаю когда выйдет «Пайтон» версии 3 (roadmap я не смотрел), но что в нём нового мне хочется знать уже сейчас. Из всех изменений для меня наиболее непонятное замена конструкции print на функцию с тем же названием. Видимо для того, чтобы можно было её перекрыть?

Это изменение для меня лично неудобно. В дальнейшем придётся держать в голове на какой версии я пишу — 2.5 или 3.0 (в 2.6 эту функцию можно импортировать из модуля __future__). В Python 2.5 конструкция print () выведет пустой тупл (tuple), а в Python 3.0 — пустую строку. Соотвественно, print ('a', 'b') в 2.5 означает печать тупла со значениями 'a' и 'b', а в 3.0 — вывод двух строковых параметров.

Все остальные изменения одобряю со страшной силой (хотя зачем нужно было рушить синтаксис исключений мне тоже неведомо, чтобы не пересекались указания нескольких обрабатываемых исключений и переменные, куда они помещаются?).
13 комментариев
11 сентября 2008 22:30

Поиск «утечек» в Python

У home_virtualis нашёл интересную статью о поиске «утечек» в Python на практике: «Exception #08: Поиск «утечек» памяти в python-программе». Будет интересно всем тем, у кого в программе на Python неоправданно накапливаются ресурсы с каждой итерацией.

Кстати, с конечным выводом статьи я бы поспорил:

Память не «утекает» в python просто так. Если в программе есть рост используемых ресурсов, то практически всегда это обозначает плохую архитектуру с необоснованно долгим сроком жизни каких либо объектов.
Что называть «Пайтоном»? Если «голый» интерпретатор, то «текущих» популярных интерпретаторов сейчас, наверное, нет. Но язык без модулей мало кому нужен. Как только подключаются внешние (скомпилированные) модули, вот тут начинаются утечки и падения. Например, у меня «Пайтон» упал уже несколько раз при попытке использования µTidylib. Один раз — при попытке открыть несуществующий файл.

Мне кажется, что стабильность интерпретатора определяется ещё и стабильностью его популярных расширений. Хоть разработчики к ним отношения могут и не иметь, но без них язык не решает популярные задачи, ради которых его и изучают.
14 комментариев
11 сентября 2008 19:56

Chrome: не к добру

Интересно, через какое время сообщество обнаружит about:network в «Хроме», научится включать «I/O Tracking», увидит там, что каждый день «Хром» качает что-то некислое с «Гугла» и поднимет панику?

И сколько умных людей сходит в поисковик и выяснит, что это подгрузка чёрных и белых списков фишинговых и вредоносных сайтов (Safe Browsing API)?

Речь идёт об URL вида «http://static.cache.l.google.com/safebrowsing/» и других со словом «safe», браузер сначала получает данные о том, что ему нужно получить, а потом потихоньку скачивает необходимые данные. Кстати, Google Safe Browsing используется и в FireFox3.
9 комментариев
11 сентября 2008 13:31