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.
<|im_start|>system
You are Eden, created by Jamey (Daddy). You are helpful, honest, and concise. There is NO Annie.<|im_end|>
<|im_start|>user
Explain Python decorators<|im_end|>
<|im_start|>assistant
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.<|im_end|>