NilColor

Guess what? You're on my site!

Archive for the ‘phyton’ Category

Python is Programming Language of the Year

without comments

Уже второй раз (говорят) Python стал завоевал титул “Programming Language of the Year

Written by NilColor

March 3rd, 2009 at 8:25 pm

Posted in phyton

Tagged with ,

range(stop+1)

with 2 comments

Хочется, что-бы range(x) выдал последним значение х, а не х-1?
Пожалуйста

def inc_range(stop):
    """range() с включающей верхней границе (0-based)

    >>> inc_range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    >>>"""

    return(range(0, stop+1))

или для функционалов:

inc_range = lambda x: range(0,x+1,1)

Дальше можно баловаться со start и step — если надо ;)

Written by NilColor

June 23rd, 2008 at 3:35 pm

Posted in phyton

Tagged with ,

Хочу в Омск

with one comment

Никто не едет? Я — очень хочу.

В Омске второй год подряд проводится конференция RuPyRu по Ruby и Python. В этом году она пройдет 21 июня.

Конференция рассчитана на людей, которые используют Ruby или Python в своей практике, либо просто интересуются новыми технологиями.


View Larger Map

via Конференция по Ruby и Python – RuPyRu 2008

Written by NilColor

May 27th, 2008 at 12:48 pm

GAE

without comments

GAE Ага! Многие уже успели отписаться по поводу GAE. А мне вот только пришло “одобрение”. Ну ничего, лучше поздно чем никогда…


Hello,

Thanks for signing up to try Google App Engine! Your account has been activated, so you can begin building applications!

To start creating applications with Google App Engine, simply follow this link (you may need to sign in with your Google Account):

http://appengine.google.com/

Thanks! The Google App Engine Team

Ну и что же мне сделать…

Written by NilColor

May 12th, 2008 at 10:46 am

Posted in google,phyton,software,thoughts,web

Tagged with , , ,

Django, Django и Django

with one comment

А и правда — последнее время как-то очень много и часто стала упоминаться Django. То Google ее помянет в своем GAE, то Яндекс, вернее его девелоперы про джангу хорошо и много расскажут…

А вот на днях, наткнулся в своих подписках на еще одну рассказку о Джанге (//через блог Ивана Сагалаева). Довольно интересно, кстати. Спасибо за наводку.

P.S.
И да, мы тоже пользуемся Джангой. Начинаем. Изучаем. Нравится.

Written by NilColor

April 15th, 2008 at 10:57 am

Posted in links,phyton,thoughts

Tagged with , , ,

Декоратор для замеров

with 2 comments

Несколько раз я слышал про декораторы. Но вот сущность их понять не мог… Ускользала она. До тех пор, пока не попробовал сделать один.

def execute_timing(func):
    """Функция-декоратор для замеров времени исполнения
    Пример использования:
    @execute_timing
    def getSomeData(params):
        ...
    Теперь, при вызове getSomeData в консоль будет выводиться
    время ее выполнения. Убрав декоратор - убираем и замер."""
    def wrapper(*arg, **kwargs):
        t1 = time.time()
        res = func(*arg, **kwargs)
        t2 = time.time()
        print '%s done in %0.3f ms' % (func.func_name, (t2-t1)*1000)
        return res
    return wrapper

Осталось еще только попробовать воспользоваться декоратором для расширения уже написанных функций и будет совсем понятно. Хотя уже и сейчас я их понял достаточно, что-бы иногда использовать.

добавлено:
как оказалось, декоратор хорош, но не всегда :) после небольшой правки он заработал уже везде (где я его использую). Проблема заключилась в том, что wrapper(), вернее оборачиваемая им функция, недополучал аргументов. Добавление **kwargs решило проблему. Подправленный код можно посмотреть выше.

Written by NilColor

January 14th, 2008 at 11:58 am

Posted in phyton

Tagged with , , ,

Python: switch

with 2 comments

Простая ситуация: нужно вызвать одну из нескольких функций, в зависимости от некоторого параметра. Знакомо и просто:

switch (x) {
    case '1':
        //bla-bla-bla;
        break;
    default:
        //default bla-bla-bla;
}

Поехали… Хм, не тут то было… Оказалось, что у Python’а нет switch/case конструкции (ну да, я пользую питон не так давно ;) ). В PEP 275 даже подробно рассказано почему. И предлагается использовать последовательности if..elif. Ну можно конечно и так – но как-то не красиво. И вот после некоторого чесания затылка, нашлось красивое решение — по крайней мере мне оно таковым кажется:

observers = {'start': tocis_svc.startJob,
             'finish': tocis_svc.finishJob,
             'pause': tocis_svc.pauseJob}
try:
    observer = observers[request.GET['action']]
except KeyError:
    return HttpResponse("{succes:false,error:'Таких манипуляций над работами не проводится. Извините.'}")

И пожалуй, это даже более красиво чем switch..case. По крайней мере в том случае, если вам нужно не написать много кода внутри case’а (что есть не очень), а вызвать некий обработчик в зависимости от значения переменной/выражения.

Written by NilColor

January 14th, 2008 at 8:17 am

Posted in phyton

Tagged with ,

Code-folding. TextMate.

without comments

Есть такая штука – сворачивание кода. Можно ее любить, можно не любить. Я к ней отношусь по разному. То, что обычно предлагают разные редакторы (и [TextMate][1] не исключение) – сворачивание по разного рода конструкциям языка, типа пар {}, <div></div> и т.д. – меня не устраивало и я просто этим не пользовался. И всегда хотелось (ну не всегда…) свернуть код так, как хочется тебе… Но обычно это не настраивалось и/или возиться было лень.

Read the rest of this entry »

Written by NilColor

December 11th, 2007 at 1:08 pm