Pyenv на маке

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

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


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

Enums в Python

Опубликовано 17 February 2017 в Python • Помечено enums, python

Enums наименее используемая фича Питона. Как программисты мы предпочитаем использовать странные дикты или списки там, где мы могли бы использовать enum. По большей части это происходит из-за того, что это довольно новая фича и требуется использовать внешнюю библиотеку обратной совместимости, если используется питон версии 2.7. Тем не менее, довольно много случаев, когда использовать enum гораздо удобнее.


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

Делаем Java-подобный Optional в Python

Опубликовано 25 November 2016 в Python • Помечено python, java

В некоторых случаях использование None может превратить код в нечитаемую и неподдерживаемую кашу. К примеру, если есть необходимость отличить "пустое" значение от отсутствия значения для целочисленного ввода, когда 0 не может использоваться в качестве этого "пустого" значения, обойтись только используя None очень сложно. Одно из возможных значений использовать что-то подобное Optional из Java.


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

Бэктрекин без рекурсии на Python

Опубликовано 03 November 2016 в Python • Помечено python, backtracking, recursion

В Питоне нет оптимизации хвостовой рекурсии и достаточно жесткий лимит на рекурсивные вызовы. Это может вызвать затруднения при решении задач с помощью алгоритма бэктрекинга: лимита хватает на поиск решения судоку, но он может оказаться слишком низким, если количество решений для проверки в задаче довольно высоко.


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

Хочется добавить тип локальной переменной? Пора делать рефакторинг!

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

PEP 526 добавляет начиная с Python 3.6 опциональную возможность указать тип для локальной переменной. Это более стройная замена комментариям с указанием типа. Это хорошо, но есть одна ловушка: указывание типа в питоне может скрыть проблемы в коде.


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