среда, 13 августа 2008 г.

Синглтон в 3 строки

Сегодня показали интересную реализацию синглтона на питоне:

понедельник, 11 августа 2008 г.

default параметр в getattr

В примере увидел интересный способ использования getattr. Третий необязательный параметр функции (getattr( object, name[, default])) - значение, которое будет возвращено, если атрибута с указанным именем не существует. Если использовать лямбду, которая делает "ничего" - lambda : None, то во многих случаях можно отказаться от использования дополнительной функции hasattr:

пятница, 8 августа 2008 г.

Оператор with в Python

В прошлом посте я жаловался, что в Python мне не хватает чего-то похожего на C++-ные деструкторы, которые вызываются в любом случае для объекта созданного в стеке при выходе из области видимости, даже когда возникает исключение. В комментария, AQUAGNU упомянул оператор with, который в Python 2.5 был еще на "птичьих правах" (для его использования надо импортировать with_statement из модуля __future__), а в 2.6 стал зарезервированным словом.

Оператор with автоматизирует выполнение операций при входе в блок кода и при выходе из него не зависимо от того, было ли исключении при исполнении блока. Под операциями входа в блок и выхода из блока имеется ввиду, например, открытие и закрытие файла, залочивание и разлочивание при синхронизации. Это можно делать (как я раньше и делал) при помощи try/finally:
with все несколько упрощает:

Read More...