Блог Python → Полезные материалы по Python | OTUS
Несколько слов о микрооптимизациях производительности

Python_Deep_17.07_Site.png

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

Проксирование для Scrapy

Python_Deep_10.07_SITE.png

Scrapy – прекрасный фреймворк для парсинга данных с сайтов. Правда, сайты не любят, чтобы их данные парсили, ещё и бесплатно. И поэтому банят беспощадно. Но иногда очень хочется спарсить немножко данных. На помощь приходят прокси-сервера для скрейпинга. Например, stormproxies, proxymesh и другие.

MRO: линеаризация в Python

Python_Deep_06.06_Site.png

Допустим, есть следующая иерархия классов:

class X(object): pass
class Y(object): pass
class A(X, Y): pass
class B(Y, X): pass

И в ней, вообще говоря, ничего криминального нет. Но если вы захотите отнаследоваться от A и B, то вас ждёт разочарование.

Подводный камень в Default-настройках СУБД

PythonDeep_22.05_Site.png

Все мы рано или поздно сталкиваемся с необходимостью сохранить какую-то информацию, да так, чтобы намертво, чтобы внуки потом ещё прочитать смогли. А если ещё нужно делать хитрые выборки по сохранённому, то обычно мы приходим к использованию реляционных СУБД. Чаще всего, если посмотреть рейтинги популярности, это MySQL.

MergeSort + InsertionSort + хитрые эвристики = ?

PythonDeep_16.05_Site.png

Сортировка массива — базовая операция. Каждый программист может написать несколько, а просто назвать алгоритмов сортировки — ещё больше.

«Естественная» необходимость и любовь к красивым решениям дала нам MergeSort, QuickSort, HeapSort и т.д. Самоирония, видимо, породила такие алгоритмы, как StupidSort, SleepSort и мой любимый — TwitterSort.

Get ready to run back: ещё одна проблема регулярных выражений

PythonDeep14.05_Site.png

Как известно каждому программисту, если собираешься решить свои проблемы регулярками, то у тебя просто станет на одну проблему больше. Но иногда выхода нет и приходится «расчехлить» свою машину регулярных выражений.

Собственно алгоритм, который лежит в её основе схож у многих популярных языков: Python, Perl, Java, Ruby и т.д. И с ним есть проблема: он может жутко «тупить» на некоторых видах регулярок. В частности, это регулярные выражения, где используется backtracking, т.е. возвращение назад в строке при поиске.

Популярное
Сегодня тут пусто