开发工具
共 415 篇文章
PHP 引用 foreach 结束后,再次遍历导致数组最后一项被覆盖
PHP 引用遍历结束后,循环变量仍绑定最后一个元素。再次赋值或遍历可能覆盖数组末项;及时 unset 循环变量,并按键和值核对受影响数据。
LangGraph 并行分支重试时,count_b 报 InvalidUpdateError
并行重试让同一个状态键在一步内被写入多次。检查 return state、字段归属、reducer 语义和汇合边,避免错误消失后计数仍重复。
LangChain 自定义检索器报没有 embeddings 属性
自定义 LangChain 检索器报没有 embeddings 属性,检查 VectorStore 与 Retriever 的对象层次;用 BaseRetriever 包装,并区分 invoke 和实现方法。
Python mock.patch 没有生效:替换被测模块实际查找的名称
mock.patch 已创建但仍调用真实函数时,沿调用表达式定位名称绑定。区分模块顶部 from import、模块属性读取与函数内导入,核对补丁时间和实际调用。
Python dataclass 继承后报 non-default argument follows default argument
dataclass 继承后的默认字段与必填字段顺序冲突,会在类定义阶段报错。用 Python 3.10 起支持的 keyword-only 字段处理,并检查构造签名、位置参数与模式匹配兼容性。
git stash -u 后,stash show 看不到未跟踪文件
git stash -u 保存后,stash show 默认可能看不到未跟踪文件。Git 2.32 起可用 include-untracked 或 only-untracked 查看;旧版读取第三父提交,并在恢复前确认条目、路径和保存范围。
PyTorch 调了 model.eval(),推理为什么仍占大量显存
eval 控制部分层的训练行为,no_grad 和 inference_mode 控制求导记录。说明纯推理、后续训练和输出留存的不同边界。
pytest 异步 fixture 变成 async_generator:检查 strict 模式和装饰器
async fixture 返回生成器或协程对象时,检查 pytest-asyncio strict 模式与装饰器。区分旧版本症状、新版警告或错误,明确 auto 模式的接管范围及循环生命周期。
JavaScript 对含 BigInt 的对象调用 JSON.stringify 报 TypeError
默认 JSON 序列化遇到 BigInt 会抛出类型异常。用局部 replacer 按接口契约转换成十进制字符串,并在接收方按已知字段恢复,避免转 Number 丢失精度。
pytest 两个目录都有 test_api.py,收集报 import file mismatch
两个测试目录中的同名文件一起收集报 import file mismatch,可选择唯一名称、完整包布局或 pytest 6.0 起的 importlib 模式,并检查辅助导入和实际收集范围。
Spring Boot 抛出受检异常后事务没有回滚
受检异常默认不要求 Spring 回滚。检查 rollbackFor、全局回滚规则、异常捕获、代理入口与数据库事务能力,避免只改 throws。
Rust 循环保存字符串引用时报 temporary value dropped while borrowed
Rust 跨循环保存 Option<&str> 时,引用的临时字符串可能提前释放。让 Option<String> 持有游标,在调用处用 as_deref 借用,并保留分页结束与重试语义。
Python 函数里递增外部计数器报 UnboundLocalError
函数里递增外部计数器触发 UnboundLocalError,需区分局部变量、模块状态和闭包状态。按状态归属选择返回值、global 或 nonlocal,并核对条件分支和调用方。
Python 生成器结束时报 RuntimeError: generator raised StopIteration
Python 3.7 起,生成器内部漏出的 StopIteration 会转换成 RuntimeError。用 return 正常结束,并在生成器内处理预期的 next 耗尽,保留普通迭代器协议和真实业务错误。
LangChain 裁剪历史后,Anthropic 报缺少 tool_result
Agent 第二轮裁剪历史后,工具请求和结果可能失去配对。核对 tool_call_id、完整工具组和实际模型输入,区分 token 计数错误与消息格式错误。
Transformers 批量编码报 tokenizer does not have a padding token
批量编码时缺少 PAD 定义,区分完整 tokenizer 配置、推理中复用 EOS 和新增词表标记;核对 attention mask、模型 embedding 与保存目录。
Java 整数列表调用 remove(2),删掉了第三项而不是数值 2
整数参数会匹配按索引删除的重载。使用 Integer.valueOf 明确按值删除,并区分首次匹配、全部重复项和目标不存在的情况。
apply_chat_template 报 chat_template is not set
apply_chat_template 找不到模板时,核对基础模型与对话 checkpoint、本地保存文件及模型角色格式。只用匹配训练格式的模板,避免重复添加特殊标记。
.gitignore 已加入 .env,Git 仍显示文件修改
.gitignore 已写入 .env,Git 仍记录它的修改。用索引和规则检查确认原因,只停止跟踪目标文件,保留本地配置,并检查提交范围、协作影响及撤销方法。
Python isdigit 返回 True,int 转换上标数字却报 ValueError
isdigit 判断 Unicode 数字属性,不能保证文本能解析为整数。按业务语法处理 int 异常或限制 ASCII 字符,并保留输入长度约束。


