Кастомные коллекции

Опубликовано 24 August 2015 в Python • Помечено python, коллекции

Хорошо написанный код на Python должен работать с последовательностями однообразно. При этом не важно встроенные это последовательности или нет. Тем более, что свою последовательность написать в питоне очень просто. Нужно всего лишь переопределить __len__, __getitem__ что бы работа с вашей последовательностью в большинстве случаев не отличалась от работы со встроенными последовательностями.


Продолжить чтение

Raymond Hettinger - Beyond PEP 8. Впечатления от доклада

Опубликовано 17 August 2015 в Python • Помечено python, pep8, видео

Один из самых интересных докладов с PyCon 2015. Реймонд рассказывает о том, что соответствие кода PEP8 не обеспечит ни его правильность, ни читаемоть, ни "питонячность". Рекомендую всем, кто хоть раз пытался улучшить свой код приведением его к PEP8, а не пытался его переосмыслить, или заворачивал пулл-реквесты из-за того, что код не по PEP8.


Продолжить чтение

Celery: Pickle от которого невозможно отказаться

Опубликовано 10 August 2015 в Python • Помечено celery, python, pickle

Если вы решили поменять сериализатор задач для Celery с Pickle на какой-нибудь другой, ничего не выйдет. Вернее задачи действительно будут сериализоваться и десериализоваться с помощью указанного сериализатора. Но внутри Celery все равно используется Pickle и это никак не изменить. Вернее не в Celery, а в библиотеке billiard, которая используется мастер-процессом воркера для раздачи задач из очереди подпроцессам.


Продолжить чтение

Декораторы с параметрами по умолчанию

Опубликовано 03 August 2015 в Python • Помечено python, декораторы

Декораторы в питоне - удобный инструмент. Если ими пользоваться с умом, они значительно повышают читаемость кода и его повторное использование. Но есть один момент, который меня немного напрягает: для декоратора с параметрами по умолчанию нужно ставить пустые круглые скобки после его вызова. Время от времени, это приводит к ошибкам. Особенно это актуально, если декоратор является частью публичного API.


Продолжить чтение