英语短语"ought to have done"是情态动词"ought to"与完成体结合的结构,核心含义是对过去行为的“应然性评价”——即“本应该做某事(但实际没做)”,或其否定形式“本不应该做某事(但实际做了)”。
表示根据常理、责任或预期,过去“理应发生”的行为未发生(肯定式),或“理应不发生”的行为却发生了(否定式)。自带遗憾、责备、反思的语气,强调“本应如此却未如此”的反差。
1、 肯定式:主语 + ought to have + 过去分词
(表示“本应该做某事,但没做”)
2、 否定式:主语 + ought not to have / oughtn't to have + 过去分词
(表示“本不应该做某事,但做了”)
3、 疑问式:Ought + 主语 + to have + 过去分词?
(表示对过去行为的反思,“我/你本应该做某事吗?”)
强调“过去有责任/理由做某事,但未执行”,常带说话者的惋惜或不满。
She ought to have passed the exam—she studied day and night.
(她本应该通过考试的——她没日没夜地学习。)(实际没通过)
You ought to have called me when you arrived. I was worried.
(你到达时本应该给我打电话的。我很担心。)(实际没打)
He ought to have left earlier—now he's stuck in traffic.
(他本应该早点出发的——现在堵在路上了。)(实际没早走)
强调“过去不应该做某事,但却做了”,常带指责或自我反思。
You oughtn't to have lied to her. She trusts you so much.
(你本不应该对她撒谎的。她那么信任你。)(实际撒谎了)
We ought not to have eaten so much spicy food. My stomach hurts.
(我们本不应该吃那么多辣的。我胃疼。)(实际吃了)
He oughtn't to have broken the vase—it was a family heirloom.
(他本不应该打碎那个花瓶——那是传家宝。)(实际打碎了)
用于询问“过去是否应该做某事”,表自我怀疑或征求意见。
Ought I to have told him the truth? Now he's angry with me.
(我本应该告诉他真相吗?现在他生我的气了。)
Ought we to have waited for her? She said she'd be here soon.
(我们本应该等她吗?她说她很快就到。)
两者核心含义几乎一致(均表“本应该”),但语气和侧重点略有不同:
ought to have done:更强调责任、义务或道德要求(语气更正式、严肃);
should have done:更强调建议、预期或逻辑合理性(语气更日常、温和)。
例:
You ought to have finished your homework before playing games.
(你本应该先做完作业再玩游戏。)(强调“责任”,父母对孩子的要求)
You should have finished your homework before playing games.
(你本应该先做完作业再玩游戏。)(强调“合理”,朋友的提醒)
"ought to"本身是情态动词,无第三人称单数变化(如he ought to,不是he oughts to);
否定式"oughtn't to"是口语缩写,正式场合用"ought not to";
不能用于虚拟语气的“与过去事实相反”(那是"would/could have done"的功能),仅用于对过去行为的评价。
"ought to have done"是评价过去行为的“应然性”——用“本应该(不)做”的逻辑,表达对过去未达标行为的遗憾、责备或反思。掌握它的关键是抓住“实际行为与应然行为的反差”。