Посты с тэгом декоратор


Python и цепная реакция и ... дескрипторы

А теперь мы научимся делать ядерную бомбу на Python ... Нет, не о том...

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

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

Простая задачка
Рассмотрим реализацию простого класса, назовем его "тупой охранник". Представим себе, что мы делаем компьютерную игру. У нас есть замок, а у ворот патрулирует охранник: ходит туда-сюда, бол


Тайна замыкания

Перед нами на работе встала задача, ограничить частоту публикации комментариев. Реализовать решили через декоратор для вьюшек.

Другими словами нужно создать декоратор, не допускающий обращение к конкретной view, конкретным пользователем в течении определенного времени.

Что такое декоратор?

Декоратор — обертка для функции. С помощью декоратора можно изменять поведение декорируемой функции, ее входные или выходные параметры.

Примеры декораторов из Django:

login_required
при обращении анонимного пользователя к декорированому view, перенаправляет его на страницу логина.
transaction.commit_on_success
выполняет все запросы из декорируемой функции к БД в одной транзакции и коммитит ее при успеш