Decorators wrap functions to modify their behavior. The @ syntax is shorthand:

```python
@decorator
def func():
    pass

# Same as: func = decorator(func)
```

Common uses: logging, timing, authentication, caching.