Посты с тэгом closure


[Из песочницы] Как скомпилировать декоратор — C++, Python и собственная реализация. Часть 2

Декораторы — одна из самых необычных особенностей Python. Это инструмент, который полноценно может существовать только в динамически типизированном, интерпретируемом языке. В первой части статьи мой товарищ Witcher136 показал, как в С++ реализовать наиболее приближенную к эталонной (питоновской) версию декораторов.


Я же расскажу про то, как решил попытаться реализовать декораторы в компилируемом языке программирования, для чего в итоге написал написал собственный небольшой компилятор на Haskell на основе LLVM.


Читать дальше →


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

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

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

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

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

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

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