# TypeError: FieldInfo.__init__() 收到意外的关键字参数 'default_factory'

- **ID:** `python/pydantic-field-info-missing-default`
- **领域:** python
- **类别:** type_error
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

Field() 同时传入了位置默认值和 default_factory，存在歧义，被 Pydantic v2 更严格的 FieldInfo 签名拒绝。

## 版本兼容性

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

## 解决方案

1. **** (98% 成功率)
   ```
   Use only default_factory:

class M(BaseModel):
    items: list[int] = Field(default_factory=list)
   ```
2. **** (85% 成功率)
   ```
   Or use only a positional default:

class M(BaseModel):
    items: list[int] = []  # careful: mutable default is copied by pydantic
   ```

## 无效尝试

- **** — Raises TypeError at import time before any model is instantiated. (90% 失败率)
- **** — Breaks immutability guarantees and validation order; often still yields None when callers inspect the field. (50% 失败率)
