悦省 ← 返回提示词库

AI / 编程与调试

看懂陌生代码

按数据流讲,而不是逐行翻译

解释下面这段代码。要求:1)先用一句话说它整体在干什么;2)按数据流讲:输入从哪来、经过哪些变换、输出到哪去;3)标出 2–3 个最容易看错的地方;4)指出任何看起来多余或可疑的代码。不要逐行翻译语法。

```
[粘贴代码]
```

适合什么场景

  • 接手别人的模块,或读一个没有文档的开源库入口文件。
  • 要改一段代码但不确定副作用边界,先要一张数据流地图。

不适合的场景

  • 代码是脚手架生成的配置:查官方文档比让模型解释快。
  • 你只想知道某个函数的签名:直接看类型定义或 grep 调用点。

示例

输入
def settle(order, now=None):
    now = now or datetime.utcnow()
    if order.status != "paid" or order.settled_at:
        return None
    amt = order.amount - sum(r.amount for r in order.refunds)
    ledger.post(order.id, amt, at=now)
    order.settled_at = now
    return amt
你会得到
先用一句话说清它是「把已支付未结算的订单按扣除退款后的净额记入 ledger」,再沿数据流讲 status 判断 → 净额计算 → ledger.post 的副作用 → 写 settled_at。然后标出 `return None` 同时表示「不该结算」和「已结算」这处最易看错,以及先 post 后写 settled_at 导致的不原子。

常见误用

  • 贴整个 2000 行文件求解释:输出会退化成逐段摘要,数据流断在文件边界。
  • 只贴函数体,不贴 ledger.post 的签名和 order 模型:副作用会被猜错,解释看着合理但用不了。

可以这样改

  • 加「只讲和结算金额有关的部分」,解释会聚焦到你要改的那条路径。
  • 要求「按调用顺序画出来,并标出每步可能失败的地方」,输出从说明书变成故障点地图。

同方向的其他提示词