单表达式倒计时工具:datetime的极度优雅(DeepSeek)

一个简单表达式,也可以优雅自成工具。


  笔记模板由python脚本于2025-03-22 20:25:49创建,本篇笔记适合任意喜欢学习的coder翻阅。


【学习的细节是欢悦的历程】

  博客的核心价值在于输出思考与经验,而不仅仅是知识的简单复述


  • Python官网
      这里,才 python 前沿。英文原版,原汁原味,才是寻根溯源的正统。😎
    地址:https://www.python.org/

  • Free
      大咖免费“圣级”秘笈《 python 完全自学教程》不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/



  自学并不是什么神秘的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时候总是比有老师的时候多。
            —— 华罗庚


---== 彰显C位 ==---

  1. ,可以在评论区书写任何想法
  2. (我将在看到的第一时间回应)

  3. (预置空地)
---== 彰显C位 ==---

我的座右铭图片,上书中文“等风来,不如追风去……”



一个简单表达式
倒计时工具
( 也可以优雅自成工具)



本文质量分:

97 97 97

本文地址: https://blog.csdn.net/m0_57158496/article/details/146445828

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ 倒计时工具
    • 1、前言
    • 2、count_down
    • 3、DeepSeek“撰写”代码文档
    • `以下是DeepSeek“理解”我的代码后,撰写的“代码文档”`
      • 背景介绍
      • 设计理念
      • 代码实现
      • 使用说明
        • 1. 运行代码
        • 2. 输入日期
        • 3. 查看结果
        • 4. 退出程序
        • 5. 异常处理
      • 代码亮点
      • 适用场景
      • 总结
      • 附录:代码背景故事
      • 代码的“实质”
      • 我的“放屁文学”
    • 4、我的“小结”


◆ 倒计时工具


1、前言


  我同时拥有了借呗、微粒贷的 0 0 0 利优惠(7天、14天),我都全额提取,为避免还款太晚而产生不必要的利息,设定手上上的“倒记时”日程提醒。过程中,生发“何不自己撸一个”“倒计时计算器”,可以随时run一下。😋这才不枉我3+years的python相伴。🤗

  这信息,应该可以帮助更有效地理念设计理念和代码逻辑。

  我有“智普清言”、DeepSeekKimi(没有有严格先后,这排序仅是我最初接触它们的时间序)三个 a i ai ai助手,想要让它们分别“理解”我的简单代码……



2025  2025  2025


2、count_down


count_down

#!/usr/bin/env python3
from datetime import datetime # 日期时间工具加载
from os import get_terminal_size as get_width # 终端显示尺寸动态获取'''count_down.py''''''
设计理念:
有输入样例,日期校验可免。
至于日期已过,返回的负值可以“说明”。😎😎
不用“过度”设计,count_down调用者自明。😋
本“工程”实质它就一个表达式——
(datetime2 - datetime1).days'''def count_down(date: (int, int, int)) -> int:''' 倒记时计算器 date: 预定日期year: intmonth: intday: int返回当前日期到预定日期的天数如:try:date = map(int, input('\n输入日期(如2025 4 5):).strip())except Exception as e:count_down(date) = 2'''return (datetime(*date) - datetime.today()).days# 纯粹 #
#count_down = lambda date: (datetime(*date) - datetime.now()).days # 这是count_down最纯粹的样子
'''代码文档的重点,应该是“正常”的def定制函数,虽然我更喜欢单行的简洁强大,但大多数人“不喜欢”,所以我让单行lambda版本的coint_down以注释形式出现,说明代码逻辑实现另一种可能。😋'''def main() -> None:''' 主程序 '''while True:try:date = map(int, input(f"\n\n{' 输入0退出程序 ':=^{width - 6}}"f"\n{'':.^{width}}"f"\n输入日期(如2025 4 5):"f"\n\n{'':>12}").strip().split())if tuple(date) == (0, ):print(f"\n\n{' 您已退出程序 ':-^{width - 6}}") exit() print(f"\n\n{count_down(date) = }")breakexcept ValueError as e:print(f"\n\n{' 输入错误 ':-^{width - 4}}"f"\n\n异常提示:\n{e}")except Exception as e:print(f"\n\n{' 一个错误 ':-^{width - 4}}"f"\n\n异常提示:\n{e}")continue if __name__ == '__main__':width = get_width().columns # 获取当前终端显示宽度main() # 调用主程序# 背景分享 #
'''count_down的诞生背景分享:
我同时拥有了借呗、微粒贷的0利优惠(7天、14天),我都全额提取,为避免还款太晚而产生不必要的利息,设定手上上的“倒记时”日程提醒。过程中,生发“何不自己撸一个”“倒计时计算器”,可以随时run一下。😋这才不枉我3+years的python相伴。🤗这信息,应该可以帮助更有效地理念设计理念和代码逻辑。'''# count_down实质 #
'''count_down根本不是“程序”,它的本质就是python日期工具datetime对象本来的能力,它就“(datetime2 - datetime1).days”一行代码,充其量也就是个简单封装。😉对于我这样子的“高级用户”,直接“(datetime1 - datetime).days”是对“工具”的最好用法,对于一般人,count_down更易用,只粗略“事务逻辑”而可以“无关细节”。😎😎复杂的计算细则,自有Python解释器打理。🤗🤗'''# 我的放屁文学 #
'''但不管如何,count_down它就是一条表达式(datetime2 - datetime1).days,我进行了那么多注释和探讨,是不是在大张旗鼓的“放屁”。🤗'''# ai说我放屁文学的“实用价值” #
'''您的幽默感表明您对编程有着深刻而轻松的理解。实际上,注释和探讨的重要性远远超出了代码本身的复杂性。以下是为什么即使是简单的函数也需要注释和文档的几个理由:
1. **教育价值**:即使 `countdown` 函数只包含一行代码,对于初学者来说,这可能是一个学习如何处理日期和时间的绝佳机会。您的注释可以帮助他们理解背后的概念。
2. **上下文提供**:注释可以解释为什么选择这种方法而不是其他可能的解决方案,或者它如何适应更大的代码库或项目。
3. **代码意图**:注释说明了函数的目的和预期用途,这可能在代码本身中并不总是显而易见。
4. **维护和更新**:在未来的某个时刻,当需要更新或修复代码时,详细的注释可以节省大量时间,帮助开发者快速理解代码的原始意图。
5. **共享和协作**:当您与他人共享代码时,注释是沟通的重要组成部分。它们帮助其他开发者快速上手,而不必深入研究代码逻辑。
6. **个人风格和品牌**:您的注释风格反映了您的个性,这在开源社区中是一种资产。它可以帮助建立您的个人品牌。
所以,您的注释和探讨绝对不是“放屁”,它们是对代码完整性和可维护性的重要贡献。当然,对于非常简单的函数,注释可以相对简洁,但绝不应该被忽视。您的做法体现了专业精神和对细节的关注,这在任何级别的编程中都是值得赞扬的。👍'''



2025  2025  2025


3、DeepSeek“撰写”代码文档


以下是DeepSeek“理解”我的代码后,撰写的“代码文档”


背景介绍

最近,我同时拥有了借呗和微粒贷的 0 利率优惠(7 天、14 天)。为了避免还款太晚产生不必要的利息,我决定设定一个“倒计时”提醒。在这个过程中,我萌生了一个想法:为什么不自己写一个倒计时计算器呢?于是,count_down 应运而生。

作为一个有 3 年以上 Python 开发经验的程序员,我希望通过这个小工具,既能解决实际问题,又能体现 Python 的简洁与优雅。


设计理念

  1. 简洁至上:代码尽量保持简洁,避免过度设计。
  2. 调用者自明:函数返回值直接反映当前日期与目标日期的差值,调用者可以根据正负值自行处理逻辑。
  3. 输入样例:通过输入样例简化用户操作,日期校验可以省略。
  4. 异常处理:通过捕获异常,确保程序在输入错误时不会崩溃,并提供友好的提示信息。
  5. 用户友好:增加了“输入0退出程序”的功能,照顾了不熟悉命令行输入的用户。

代码实现

以下是 count_down 的完整代码实现:

#!/usr/bin/env python3
from datetime import datetime  # 日期时间工具加载
from os import get_terminal_size as get_width  # 终端显示尺寸动态获取'''
设计理念:
有输入样例,日期校验可免。
至于日期已过,返回的负值可以“说明”。😎😎
不用“过度”设计,count_down调用者自明。😋
本“工程”实质它就一个表达式——
(datetime2 - datetime1).days
'''def count_down(date: (int, int, int)) -> int:''' 倒计时计算器 Args:date: 预定日期,格式为 (年, 月, 日)Returns:int: 当前日期到预定日期的天数。如果预定日期已过,返回负值。'''return (datetime(*date) - datetime.today()).days# 纯粹 #
# count_down = lambda date: (datetime(*date) - datetime.now()).days  # 这是count_down最纯粹的样子
'''代码文档的重点,应该是“正常”的def定制函数,虽然我更喜欢单行的简洁强大,但大多数人“不喜欢”,所以我让单行lambda版本的count_down以注释形式出现,说明代码逻辑实现另一种可能。😋'''def main() -> None:''' 主程序 '''width = get_width().columns  # 获取当前终端显示宽度while True:try:date = map(int, input(f"\n\n{' 输入0退出程序 ':=^{width - 6}}"f"\n{'':.^{width}}"f"\n输入日期(如2025 4 5):"f"\n\n{'':>12}").strip().split())if tuple(date) == (0, ):print(f"\n\n{' 您已退出程序 ':-^{width - 6}}") exit() print(f"\n\n{count_down(date) = }")breakexcept ValueError as e:print(f"\n\n{' 输入错误 ':-^{width - 4}}"f"\n\n异常提示:\n{e}")except Exception as e:print(f"\n\n{' 一个错误 ':-^{width - 4}}"f"\n\n异常提示:\n{e}")continue if __name__ == '__main__':main()  # 调用主程序

使用说明

1. 运行代码

将代码保存为 count_down.py,然后在终端中运行:

python3 count_down.py
2. 输入日期

程序会提示输入日期,格式为 年 月 日,例如:

输入0退出程序
=========================
输入日期(如2025 4 5):
2025 3 25
3. 查看结果

程序会输出当前日期与目标日期的差值:

  • 如果目标日期在未来,返回正数,表示剩余天数。
  • 如果目标日期已过,返回负数,表示已过去的天数。

例如:

count_down(date) = 3  # 距离目标日期还有 3 天
count_down(date) = -4 # 目标日期已过去 4 天
4. 退出程序

输入 0 即可退出程序,退出时会显示提示信息:

您已退出程序
-----------------------------
5. 异常处理
  • 如果输入格式错误(如非数字字符),程序会提示“输入错误”。
  • 如果发生其他异常,程序会捕获并显示异常信息。

代码亮点

  1. 简洁的日期计算:通过 datetime 模块,轻松实现日期差值计算。
  2. 友好的交互提示:通过 inputprint 实现用户交互,提示信息清晰。
  3. 健壮的异常处理:通过 try-except 结构捕获异常,确保程序稳定性。
  4. 终端宽度自适应:通过 get_terminal_size 获取终端宽度,使错误信息居中显示。
  5. 退出功能:增加了“输入0退出程序”的功能,用户体验更加友好。

适用场景

  1. 个人提醒:如还款倒计时、生日倒计时等。
  2. 项目管理:如项目截止日期倒计时。
  3. 学习工具:作为 Python 初学者的日期计算示例。

总结

count_down 是一个简单而实用的倒计时工具,体现了 Python 的简洁与强大。通过这个小工具,我不仅解决了实际问题,还加深了对 Python 日期处理的理解。希望这个工具对大家有所帮助,也欢迎大家在评论区分享自己的改进建议和使用心得!


附录:代码背景故事

count_down 的诞生源于我对借呗和微粒贷 0 利率优惠的使用需求。为了避免还款太晚产生利息,我决定写一个倒计时提醒工具。这个小工具不仅解决了我的实际问题,还让我感受到了编程的乐趣。正如 Python 社区常说的那句话:“人生苦短,我用 Python。” 😋


代码的“实质”

正如你所说,count_down 的本质就是一行代码:

(datetime(*date) - datetime.today()).days

它的核心功能非常简单,但正是这种简单的封装,让代码更易用、更清晰。无论是高级用户还是普通用户,都可以从中受益。


我的“放屁文学”

你可能会问,count_down 就是一行代码,我为什么要写这么多注释和文档?是不是在“放屁”?🤗

其实不然,注释和文档的价值在于:

  1. 教育意义:帮助初学者理解代码的逻辑和设计理念。
  2. 上下文提供:解释代码的背景和用途。
  3. 代码意图:让调用者快速理解函数的目的。
  4. 维护和更新:为未来的开发者提供清晰的参考。
  5. 共享和协作:让代码更容易被他人理解和使用。

所以,这些注释和文档绝对不是“放屁”,而是对代码完整性和可维护性的重要贡献。😉



2025  2025  2025


4、我的“小结”


  经过多轮对话,让DeepSeek“完全”读懂了我的代码和“我的想法”。

  它写的文档条理清晰,结构合理,基本就是“我的表达”。👍



2025  2025  2025


上一篇:
Python功能完美的宝库——内置的强大“武器库”builtins(builtins模块包含了Python大量的内置对象(函数、异常和类型等),她是Python的内置武器库,堪称功能完美的宝库)



我的HOT博:

  本次共计收集449篇博文笔记信息,总阅读量70.99w。数据采集于2025年03月17日 00:27:47,用时10分46.1秒。阅读量不小于6.00k的有 10 10 10篇。


  1. 让QQ群昵称色变的神奇代码
    地址:https://blog.csdn.net/m0_57158496/article/details/122566500
    浏览阅读:63,055
    点赞:25 收藏:90 评论:17
    (本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)

  2. Python列表(list)反序(降序)的7种实现方式
    地址:https://blog.csdn.net/m0_57158496/article/details/128271700
    浏览阅读:14,196
    点赞:9 收藏:40 评论:8
    (本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)

  3. 个人信息提取(字符串)
    地址:https://blog.csdn.net/m0_57158496/article/details/124244618
    浏览阅读:10,461
    点赞:3 收藏:21 
    (本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)

  4. pandas 数据类型之 DataFrame
    地址:https://blog.csdn.net/m0_57158496/article/details/124525814
    浏览阅读:10,358
    点赞:7 收藏:40 
    (本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)

  5. 统计字符串字符出现的次数
    地址:https://blog.csdn.net/m0_57158496/article/details/130517025
    浏览阅读:8,535
    点赞:5 收藏:27 
    (本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)

  6. 罗马数字转换器|罗马数字生成器
    地址:https://blog.csdn.net/m0_57158496/article/details/122592047
    浏览阅读:8,393
    收藏:3 
    (本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)

  7. Python字符串居中显示
    地址:https://blog.csdn.net/m0_57158496/article/details/122163023
    浏览阅读:8,190
    点赞:1 收藏:12 评论:1
  8. 回车符、换行符和回车换行符
    地址:https://blog.csdn.net/m0_57158496/article/details/123109488
    浏览阅读:6,921
    点赞:2 收藏:4 
    (本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)

  9. python清屏
    地址:https://blog.csdn.net/m0_57158496/article/details/120762101
    浏览阅读:6,282
    点赞:1 收藏:10 
  10. 我的 Python.color() (Python 色彩打印控制)
    地址:https://blog.csdn.net/m0_57158496/article/details/123194259
    浏览阅读:6,192
    点赞:2 收藏:9 
    (本篇笔记于2022-02-28 22:46:21首次发布,最后修改于2022-03-03 10:30:03)


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新 发笔记被误杀而落马。躺“未过审”还不如回收站 ,回收站还不如永久不见。😪值此年底清扫,果 断移除。留此截图,以识“曾经”。2023-12-31)



2 0 2 5  2 0 2 5  2 0 2 5


老齐漫画头像

精品文章:

  • 好 文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永 久分享,点击跳转 免费🆓下载。)
  • OPP三大特性:封装中的property
  • 通过内置 对象理解python
  • 正则表达式
  • python中“*”的作用
  • Python 完全自学手册
  • 海象运算符
  • Python中的 `!=`与`is not`不同
  • 学习编程的正确方法
来源: 老齐教室

◆ Python 入门指南 【Python 3.6.3】

好文力 荐:

  • 全栈领域优质创作者——[寒 佬]博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
  • 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
  • 靠谱程序员的好习惯
  • 大佬帅地的优质好文“函 数功能、结束条件、函数等价式”三大要素让您认清递归

CSDN实用技巧博文:

  • 8个好用到爆的Python实用技巧
  • python忽略警告
  • Python代 码编写规范
  • Python的docstring规范(说明文档的规范写法)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38505.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes的Replica Set和ReplicaController有什么区别

ReplicaSet 和 ReplicationController 是 Kubernetes 中用于管理应用程序副本的两种资源,它们有类似的功能,但 ReplicaSet 是 ReplicationController 的增强版本。 以下是它们的主要区别: 1. 功能的演进 ReplicationController 是 Kubernete…

CSS基础知识一览

持续维护 选择器 display 常用属性 浮动 弹性布局

IS-IS原理与配置

一、IS-IS概述 IS-IS(Intermediate System to Intermediate System,中间系统到中间系统)是ISO(International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNet…

【前端】Visual Studio Code安装配置教程:下载、汉化、常用组件、基本操作

文章目录 一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2、view-in-browser3、Live Server 四、基本操作五、感谢观看! 一、Visual Studio Code下载 下载官网:https://code.visualstudio.com/ 进入官网后点击右上角的Download &…

git推送代码相关学习——(一)

推荐去阅读一下廖老师的git相关的教程https://liaoxuefeng.com/books/git/introduction/index.html 这个系列就来学习一下git操作。 第一步,新建项目 去github中新建一个项目,然后依据项目来进行本地的开发工作。 第二步,拉取项目 git c…

CMS网站模板设计与用户定制化实战评测

内容概要 在数字化转型背景下,CMS平台作为企业内容管理的核心载体,其模板架构的灵活性与用户定制能力直接影响运营效率。通过对WordPress、Baklib等主流系统的技术解构发现,模块化设计理念已成为行业基准——WordPress依托超过6万款主题库实…

Maya基本操作

基本操作 按住ALT键,左键旋转视角,中键平移视角,右键放大缩小视角。 按空格键切换4格视图。 导入FBX格式文件后,无贴图显示。 按6键开启。着色纹理显示 坐标轴相关 修改菜单-左键最上面的虚线。固定修改选项窗口。 选中物体…

政安晨【超级AI工作流】—— 使用Dify通过工作流对接ComfyUI实现多工作流协同

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 目录 一、准备工作 Dify跑起来 ollama局域网化配置 Dify配置并验证 启动ComfyUI 二、…

【蓝桥杯】12111暖气冰场(多源BFS 或者 二分)

思路 这题可以用BFS做,也可以用二分来做。 用二分这里只提供一个思路:对时间来二分查找,check函数就是检查在特定的时间 t 0 t_0 t0​内每一个暖气炉的传播距离能否覆盖所有格子。 用BFS做: 由几个点开始向外扩散,知道…

【云上CPU玩转AIGC】——腾讯云高性能应用服务HAI已支持DeepSeek-R1模型预装环境和CPU算力

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大三学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…

【JavaEE】网络编程socket

1.❤️❤️前言~🥳🎉🎉🎉 Hello, Hello~ 亲爱的朋友们👋👋,这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章,请别吝啬你的点赞❤️❤️和收藏📖📖。如果你对我的…

超硬核区块链算法仿真:联盟链PBFT多线程仿真实现 :c语言完全详解版

1 22年年底想用gpt做出一个pbft的算法仿真,到了25年终于可以结合gpt grok perplexcity deepseek等实现了!!!!! 1.1简化版 // 定义 Windows 版本,确保条件变量相关函数可用 #define _WIN32_W…

【并发编程】聊聊forkJoin的原理和最佳实践

对于线程池来说,其实本质就是一个生产者消费者的模式,而通过竞争的方式从队列中获取任务执行。本质上其实就是按照任务级别进行处理,但是对于一些可以分而治之的任务,传统的线程池没有办法分治处理。一是无法对大任务进行拆分&…

【数据预测】基于遗传算法GA的LSTM光伏功率预测 GA-LSTM光伏功率预测【Matlab代码#91】

文章目录 【可更换其他算法,获取资源请见文章第6节:资源获取】1. 遗传算法GA2. 长短期记忆网络LSTM3. 基于GA-LSTM的光伏功率预测4. 部分代码展示5. 运行结果展示6. 资源获取 【可更换其他算法,获取资源请见文章第6节:资源获取】 …

Java 填充 PDF 模版

制作 PDF 模版 安装 OnlyOffice 从 OnlyOffice 官网下载 OnlyOffice Desktop,安装过程很简单,一路下一步即可。用 OnlyOffice 制作 PDF 模版(表单) 使用 OnlyOffice 表单设计器,制作表单,如下图 注意命名…

使用安装 Kettle 教程 Pentoho 10.2.0.0-222 安装 连接mysql

流程 准备下载安装测试链接常见问题 准备 需要提前安装好 JDK 配置好环境变量 (教程看前文) 安装好mysql(教程看前文) 下载好pentaho链接数据库驱动 下载pentaho安装包 https://pentaho.com/wp-content/uploads/2024/04/three-s…

MySQL表的增加、查询、修改、删除的基础操作

MySQL表的增加、查询、修改、删除的基础操作 一、CRUD二、新增数据 insert2.1 单行数据 全列插入2.2 多行数据 指定列插入 三、查询 select3.1 全列查询(select *)3.2 指定列查询3.3 表达式查询3.4 去重:distinct3.5 带有排序的查询&#x…

Windows Server 2025 使用 IIS 搭建 ASP.NET 3.5 网站

开启远程桌面 参考文章Windows server开启远程桌面教程打开服务管理器。ECS 配置安全组,开启 3389Telnet 验证网络联通性 telnet x.x.x.x 338安装 Windows App,登录验证 安装 ASP.NET 3.5 1.参考文章Windows Server 2012安装 .NET Framework 3.5和 Wi…

Linux上位机开发实战(能用的开发板计算资源)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 大家所能想到的嵌入式上位机开发,如果是linux,同时涉及到嵌入式的话,一般都会认为是把pc linux的软件port到板子…

STM32中断

中断的基本概念 中断具体定义:操作系统课程里有清晰的阐述。 STM32中断:中断来了,主程序都得立即暂停,程序由硬件电路自动跳转到中断程序中。中断执行前,进行现场保护;中断执行后,会再还原现场…