过去完成时(及叙事时态)

B1 Past perfect (+ narrative tenses) 33 / 50

概要

过去完成时(had + 过去分词)表示“过去中的过去”——在过去某个时刻或动作之前发生的事情。当你已经在讲过去的事情时,用它指向更早发生的事件。

规则

讲故事或描述过去的事情时,一般过去时承担主要事件。有时你需要提到发生得更早的事情,这时就要用过去完成时再往前“退一步”。

When I arrived, the train had already left. > (火车先离开,然后我才到。过去完成时表示哪件事先发生。)

所有人称的形式都一样(I / you / he / she / it / we / they):就是 had + 过去分词。he/she/it 都不需要改变 had。

过去完成时经常和这些词连用:already, just, never, ever, by the time, after, before, because。

标志词例句
alreadyThe film had already started when we sat down.
justShe had just woken up when the phone rang.
never / everIt was the best meal I had ever eaten.
by the timeBy the time we got there, everyone had gone home.
becauseHe was tired because he hadn’t slept.

用 after / before 时,时间顺序本身已经很清楚了,所以过去完成时是可选的——一般过去时往往就够了。

After he had finished, he left. = After he finished, he left.

叙事时态(整体来看)。 在一个故事里,这三种时态会配合使用:

时态在故事里的作用例句
一般过去时主要事件,按顺序发生I opened the door and walked in.
过去进行时场景/背景It was raining and the wind was blowing.
过去完成时更早的背景The house had been empty for years.

过去完成进行时(简单提一下):had been + -ing 强调更早那个动作持续了多久。Her eyes were red because she had been crying. 同样的思路往前挪一格,见现在完成进行时。

形式与结构

形式结构例句
肯定式主语 + had + 过去分词They had eaten before we arrived.
缩略形式主语 + ‘d + 过去分词They’d eaten before we arrived.
否定式主语 + had not / hadn’t + 过去分词I hadn’t met her before.
问题Had + 主语 + 过去分词……?Had you seen it before?
简答Yes, … had. / No, … hadn’t.Yes, I had. / No, I hadn’t.

注意:‘d 可能是 had 的缩写,也可能是 would 的缩写。如果后面接过去分词,就是 had(She’d left = She had left);如果后面接动词原形,就是 would(She’d leave = She would leave)。

过去分词是动词的第三种形式:规则动词加 -ed(work -> worked),不规则动词必须逐个记住(go -> gone、see -> seen、write -> written、take -> taken、break -> broken)。不规则动词列表见一般过去时。

例句

English说明
When I got to the station, the train had already left.火车先离开,我后到。
She had never seen snow before that trip.在过去某个时刻之前一直“没有经历过”的事。
By the time the police came, the thief had escaped.一个过去的事件在另一个之前完成。
He failed the exam because he hadn’t studied.过去完成时给出更早发生的原因。
After we had paid, we left the restaurant.这里可以不用——顺序已经很清楚了。
I knew his face because we had met at a party.回指更早的一次见面。
They’d finished dinner, so the kitchen was a mess.缩略形式 ‘d = had;结果在后面才显现。
Her hands were dirty because she had been gardening.过去完成进行时——更早正在进行的动作。

常见错误

  • When I arrived, the train left. -> When I arrived, the train had left.——先发生的事件要用过去完成时。
  • I had went home. -> I had gone home.——had 后面要用过去分词,不用一般过去式。
  • He has finished before I called. -> He had finished before I called.——“过去中的过去”要用 had,不用 has。
  • First I had cooked, then I had eaten. -> First I cooked, then I ate.——如果顺序已经很清楚了(then、first),一般过去时就够了,不要滥用过去完成时。
  • She’d leave when I arrived.(想表达“她已经走了”)-> She’d left when I arrived.——表示过去完成时,‘d 后面需要接过去分词。

学习提示

  • 问自己:“这件事是不是发生在我正在说的另一件过去的事情之前?”如果是,就用 had + 过去分词往前退一步。
  • 一般只需要用一次过去完成时来标出“更早”,然后故事的其余部分回到一般过去时就行。
  • Had 不随人称变化:I/you/he/she/it/we/they had——所有人称都用同一个形式。
  • 在故事里:一般过去时 = 事件,过去进行时 = 场景,过去完成时 = 倒叙。只有真正需要跳回更早的时间时,才用第三种。