其他所有的过去时态都把你固定在过去的某一个时间点上。过去完成时能让你从这个时间点往回退一步,讲述在那之前发生的事情。
- When I arrived, the train had left.
两个过去发生的事件,单凭语法本身就能看出先后顺序:火车先开走了。
构成方式
had + 动词的过去分词(第三形式)
Had 在所有人称中都一样——没有例外,不需要做任何一致性变化。
| 肯定句 | I had finished. · She had gone. |
| 否定句 | We hadn't started. |
| 疑问句 | Had you seen it before? |
| 缩写形式 | I'd finished. · They'd left. |
缩写形式要小心:这里的 I'd 是 I had,但在别的地方也可能是 I would。区分的关键是后面的词:I'd finished(过去分词 → had),I'd finish(动词原形 → would)。
为什么需要过去完成时
让先后顺序不产生歧义
- When I arrived, the train left. —— 我先到,然后火车才开走。我很可能赶上了。
- When I arrived, the train had left. —— 火车更早就开走了。我迟到了。
同样的词,结果却截然相反。这正是这个时态存在的意义。
解释过去某个情形的原因
- She was upset because she had failed the exam.
- The ground was wet — it had rained overnight.
一般过去时描述情形本身,过去完成时描述导致这个情形、发生得更早的原因。
与 already、just、never、by the time 连用
这些词会从过去的某个时间点向更早处回望,因此会带出过去完成时。
- By the time we got there, they had already eaten.
- It was the best film I had ever seen.
- I had never been abroad before that trip.
什么时候不需要过去完成时
这正是学习者最容易过度使用的地方。如果先后顺序已经很清楚——凭借 before、after,或者单纯的常理判断——用一般过去时听起来完全自然。
- ✅ I had dinner and then I went to bed.(顺序已经很明显)
- ✅ After she left, I called him.(after 已经说明了谁在先)
如果一段叙述里每一句都用过去完成时,这是刚学会这个时态的典型标志。母语者只在时间线真正需要往回跳跃的地方才使用它——通常一段话里出现一两次,而不是每一句都用。
间接引语中的过去完成时
当你转述过去说过的话时,一般过去时通常会往前推一步:
- "I lost my keys." → He said he had lost his keys.
- "We have finished." → They said they had finished.
无论是原来的现在完成时还是一般过去时,在间接引语中都会合并成过去完成时,因为再往前已经没有更早的时态可用了。
对话中的用法
迟到了
A: Why didn't you come to the party?
B: I did, but by the time I got there everyone had gone home.
A: Really? It had only just started when I left.
B: Well, I'd been at work until ten. I'd never finished that late before.
这里每一个过去完成时,标记的都是发生在讨论中的那个时间点之前的事情。简单的一般过去时——came、got、left——则维持着主要的时间线。
自我检测
下面的测验考察你能否分清事件的先后顺序,以及哪些情况下一般过去时才是更好的选择。