Уведомления

Группа в Telegram: @pythonsu

#1 Май 27, 2011 08:42:11

evilempirer
От:
Зарегистрирован: 2010-06-07
Сообщения: 88
Репутация: +  0  -
Профиль   Отправить e-mail  

Декараторы

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



Офлайн

#2 Май 27, 2011 09:46:08

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Декараторы

Самый простой пример. У нас есть функции. Декоратор всегда возвращает результат функции, деленный на 2

>>> def dec(f):
... def inner(*args, **kwargs):
... return f(*args, **kwargs) / 2.
... return inner
...
>>>
>>> @dec
... def add(a, b):
... return a + b
...
>>> add(1,23)
12.0
>>>
Более сложные примеры. Например, удобно использовать декораторы для постраничного вывода объектов. Допустим, сферический пример для веб-фреймворка. У нас есть view, который возвращает список найденных объектов, а вывод происходит по 10 объектов на страницу.

@pagination(10)
def view(request):
...
return Response('my_template.pt', context=[ob_list])



Офлайн

#3 Май 27, 2011 12:45:08

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

Декараторы

:)
Если вы прочитали кучу статей и до сих пор не можете понять что такое декораторы и для чего они нужны… боюсь ещё один пример вам не поможет…
И к слову, приведите ссылки на статьи, которые вы прочитали и не смогли понять…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version