Почему не я люблю декораторы и метаклассы

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

Я не люблю декораторы и метаклассы. Почти любое использование декоратора и любое использование метакласса ухудшает читаемость кода. Их трудно использовать без усложнения кода. Они приводят к трудновыявляемым багам. Так что их использование должно быть обосновано. И их не нужно использовать там, где можно легко и безболезненно обойтись без них.


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

Области видимости переменных в Python

Опубликовано 07 сентября 2015 в Python • Помечено python

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


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

Type Hinting в Python 3.5

Опубликовано 31 августа 2015 в Python • Помечено python, type-hinting

"Утиная" типизация конечно ускоряет написание программ, но только до определенных пределов. В больших проектах, когда количество кода достаточно большое, такая гибкость начинает давать сбои. С Python 3.0 можно делать типизацию для функций. Но только с 3.5 появится действительно мощный инструмент встроенный в язык.


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

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

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

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


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

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

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

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


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