Аннотации функций в Питон 3000

19.06.2007

Python

Когда Гвидо ван Россум впервые написал, что он подумывает о том, чтобы попробовать включить в Питон опциональное описание типов аргументов и значений функций, а потом долго гасил флейм, я сразу эмоционально принял сторону ярых противников этой штуки. В конце концов, у нас же есть duck typing! И всякая идея декларировать ...

Деакцентирование букв по-питоновски

20.02.2007

Юникод, Python

Под деакцентированием я имею в виду убирание закорючек, черточек, крышечек и прочих умляутов с букв европейских (и не только) алфавитов. Задачка такая то и дело возникает при поиске строк. Насколько я успел заметить, принятый способ решения — просто составление таблиц вида "á" → "a", "è" → "e" и т.д. Способ ...

Контролируемое скачивание 2

Это долгожданное (в основном мной :-) ) продолжение статьи "Контролируемое скачивание", где я писал про то, как я реализовывал скачивание с авторизацией, контролем скорости и успешного завершения в Неком Музыкальном Сервисе. Сервис мы запустили в конце декабря в работу, и о нем у меня будет еще, что написать в самое ...

Duck typing в действии

Практический пример использования особенности, известной как "duck typing", для не программирующих на Питоне. Впрочем, программирующим тоже может быть интересно :-) "Если это ходит, как утка, и крякает, как утка, то значит это утка" — это принцип, по которому в Питоне и некоторых других динамических языках считается, что то, что объект ...

Питону не хватает `protected`

Мартин Фаулер говорит о двух подходах к проектированию наследования: четкая спецификация того, что можно наследовать из класса с запрещением остального, либо свободное разрешение делать с базовым классом все, что позволяет язык (в соответствии с "разрешающей позицией"). Свободный подход ругают за то, что наследник может сломать поведение самого базового класса, если ...

Дубликаты в списках в Питоне

03.10.2006

Python

У меня периодически всплывает вопрос: как в Питоне удалить в списке дублирующиеся элементы (из [1, 2, 2, 3] получить [1, 2, 3]). Я знаю один способ-хак: lst = dict([(item, None) for item in lst]).keys() Здесь создается словарь из элементов списка в качестве ключей. Поскольку ключи в словаре уникальные, добавление дублирующих ...

Оператор `with` в Python 2.5

19.09.2006

Delphi, Python

Только что прочитал у Pythy, что вышел Python 2.5. В нем много всего нового и змечательного, и что приятно, я даже не нашел на первый взгляд ничего, что вызвало бы отрицательную реакцию. Но я больше всего рад появлению одной конкретной вещи — оператора with. with в Delphi Я очень любил ...

Крайне случайный пароль

22.06.2006

Python

... или "Зачем нужно бета-тестирование". Недавно в поисках улучшения производительности своего музыкального сервиса перевел один из своих джанговских проектов с mod_python на FastCGI. Обе эти схемы по-разному реализуют одно и то же: постоянное нахождение в памяти загруженного приложения, чтобы не тратить время на его загрузку при каждом обращении. И обычно ...

Юникод в Питоне - странный повод для смеха

14.06.2006

Юникод, Python

Юлик написал про свою любимую тему последнего времени — юникод. На этот раз он предлагает посмеяться то ли над Trac, то ли над Django. То ли над "теми, кто считает что в Python хороший unicode support". Мне думается, что такой пост способен ввести многих в заблуждение и создать неверный миф, ...

Python Markdown для вашего синтаксиса

19.04.2006

Python

Предположим, вы пишете блог, форум или систему комментариев. То есть нечто, где пользователи будут писать много текста. И этот текст они хотят форматировать. Писать вручную HTML, как показывает практика, никому не нравится (никому — это кроме нас, жалких 10-100 тысяч гиков). Значит остаются javascript'овые тулбарчики разной степени удобства и/или упрощенный ...

Контролируемое скачивание

В моем нынешнем проекте — "Неком Музыкальном Сервисе" (о котором я еще, наверное, не раз напишу, уж не обссудьте) — есть одно интересное требование, назвающееся "контролируемое скачивание", которое означает, что: для отдельных категорий пользователей скорость скачивания должна быть ограничена система должна быть в курсе, когда скачивание успешно завершено Это одна ...

Обмен значениями переменных в Питоне

27.03.2006

Python

Забавно иногда открывать для себя лаконичные способы делать что-то в синтаксисе нового языка. Сегодня возникла нужда поменять значения двух переменных, и я подумал, что традиционный способ: temp = x x = y y = temp ... слишком длинен. Не может быть, чтобы в Питоне не было чего-нибудь покороче. В Питоне ...

Django

Давно хочу написать про Django. В итоге, вот, сподвигся, прочитав песню о Ruby и Rails на Julik Live. Многим людям, особенно занимающимся программированием, дизайном и прочей деятельностью, связанной с hi-tech творчеством, думаю, знакомо ощущение, что ты в этом мире катастрофически не успеваешь за временем. Что, в общем-то, и понятно: благодаря ...

Массовые переименования

02.11.2005

Разное, Python

Из недавнего отпуска я привез около 500 фотографий (цифровых, конечно, не на пленках :-) ). Сегодня принялся приводить их в порядок: удалять ненужные и распределять оставшиеся в директории по дням отпуска. Кто этим занимался знает, что делать это вручную слегка муторно, особенно сливать в одну папку файлы из двух разных ...