June 2017
Beginner to intermediate
274 pages
6h 49m
English
The key is that the @ symbol isn't followed by the name of a decorator per se; it's followed by an expression that evaluates to a decorator. So, wraps isn't actually a decorator. Strictly speaking, it's a function that returns the decorator.