# 类型错误：'Middleware' 对象不可调用

- **ID:** `python/starlette-middleware-type-error`
- **领域:** python
- **类别:** type_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

中间件类未实例化或未作为可调用对象使用。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 3.x | active | — | — |

## 解决方案

1. **Instantiate the middleware before adding it to the app.** (90% 成功率)
   ```
   from starlette.middleware import Middleware
middleware = Middleware(SomeMiddleware)
app.add_middleware(middleware)
   ```
2. **Use the middleware class directly with app.add_middleware.** (95% 成功率)
   ```
   app.add_middleware(SomeMiddleware)
   ```

## 无效尝试

- **Passing the middleware class directly without instantiation.** — The middleware must be an instance or a callable; a class is not callable in this context. (80% 失败率)
- **Importing the middleware incorrectly from a wrong module.** — The imported object may not be a middleware at all. (60% 失败率)
