过去完成时(及叙事时态)
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。
| 标志词 | 例句 |
|---|---|
| already | The film had already started when we sat down. |
| just | She had just woken up when the phone rang. |
| never / ever | It was the best meal I had ever eaten. |
| by the time | By the time we got there, everyone had gone home. |
| because | He 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——所有人称都用同一个形式。
- 在故事里:一般过去时 = 事件,过去进行时 = 场景,过去完成时 = 倒叙。只有真正需要跳回更早的时间时,才用第三种。