Что почитать о asyncio. 9 полезных ссылок

Опубликовано 20 October 2017 в Python • Помечено python, asyncio, aiohttp

Asyncio — полезная библиотека. Но разобраться с ней не так-то просто. Документации по большей части недостаточно. Хочется примеров. Хочется подробных объяснений. Последние несколько выходных я потратил на эксперименты с этой библиотекой. Во время чего в Pocket осели довольно интересные ссылки, которыми я хочу поделиться.


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

Поддержка целостности проекта в Python требует усилий

Опубликовано 06 October 2017 в Python • Помечено python

Python позволяет программисту довольно много. Это очень выразительный язык. Его динамическая природа даёт возможность делать элегантные решения, которые довольно сложно представить, к примеру, в Java.

Тем не менее за все надо платить. При росте кодовой базы, проекты на Python начитают требовать всё больше и больше ресурсов на поддержание своей целостности. Без некоторых усилий проект начинает разваливаться на куски.


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

Хэш-функция для функции в Python

Опубликовано 12 September 2017 в Python • Помечено python, cpython

Пару недель назад один из моих коллег задал вопрос: можно ли использовать функцию в качестве ключей словаря? Да, можно. У каждой функции в Питоне есть хеш. Но как он считается? На основе имени функции? На основе байт-кода? В действительности, хэш считается трансформацией над указателем на объект функции. Тем не менее, не так-то легко отыскать эти расчеты в коде CPython.


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

Property в классе наследнике

Опубликовано 30 May 2017 в Python • Помечено python, property

Кажется очевидным, что property можно переопределить в классе наследнике и вызвать super внутри этого переопределенного свойства. Вроде бы звучит нормально? Да, так и есть. Тем не менее, когда мой коллега задал мне такой вопрос, я "завис" на некоторое время. Возможно я излишне подозрителен, но каждый раз когда в коде есть какая-то магия, я ожидаю подвоха. Поэтому, я решил немного поэкспериментировать и доказать себе, что проперти работают так как ожидается.


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

Pyenv на маке

Опубликовано 19 May 2017 в Python • Помечено python, pyenv

Довольно сложно управляться с несколькими версиями питона на одном ноутбуке. Хотя, это довольно распространенная ситуация. Обычно, у разработчиков несколько проектов требующих разных версия питона. В целом, есть несколько вариантов для решения этой задачи, но моим любимым остается pyenv в компании с плагином virtualenv. Раньше я использовал "голый" Homebrew, но это далеко не так гибко и удобно.


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