怎么实现在Python退出时强制运行一段代码

技术怎么实现在Python退出时强制运行一段代码这篇文章主要讲解了“怎么实现在Python退出时强制运行一段代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现在P

本文主要讲解“Python退出时如何实现一段代码的强制运行”。本文的讲解内容简单明了,易学易懂。请跟随边肖的思路,一起学习学习“Python退出时如何实现一段代码的强制运行”。

想象一个场景,你想为一个项目开发一个测试程序。当程序开始运行时,它将创建一个初始环境,测试完成后,它将清理环境。

逻辑本身很简单:

设置()测试()清洁()。但是由于要测试的代码比较复杂,调试时程序总是异常,导致每次clean()函数运行前程序都会崩溃。

你可能会想,如果你写下这个会发生什么:

Setup () try:text()除了exceptionase3360print('异常操作:',e)clean()看起来程序会运行到clean()函数,但是如果你写更多的代码,你应该知道滥用try.除.之外.会让你很痛苦。例如,它突然向您输出一个运行异常: 1。你不知道哪里出了问题,也不知道到底哪里出了问题。为了找到问题,你必须让程序把错误吹出来。但是这样一来,clean()又不能正常运行了。

有什么方法可以让程序报告错误,并在报告错误后运行clean()?

此时,我们可以使用Python附带的atexit模块。使用起来非常简单:

导入atexit @ atexit . registeredefclean(): print(' clean环境相关代码')setup()test(),这样我们就不需要显式调用clean函数了。无论程序正常结束还是程序异常报错,都会一直执行clean函数的内容。

如下图所示:

怎么实现在Python退出时强制运行一段代码

Atexit在使用中有以下注意事项:

可以注册多个退出函数,它们会按照注册时间从晚到早执行。例如:

导入atexit @ atexit . registeredefclean _ 1():@ atexit . registerdefclean _ 2():将首先运行clean _ 2(),然后运行clean _ 1()。

如果clean()函数有参数,可以直接调用atexit.register(clean_1,参数1,参数2,参数3='xxx ')而不用decorator。

如果程序被你没有处理的系统信号杀死,注册的函数就不能正常执行。

如果发生严重的Python内部错误,您注册的函数将无法正常执行。

如果你打电话给操作系统。_手动退出(),您注册的函数将无法正常执行。

感谢您的阅读。以上就是“Python退出时如何强制执行一段代码”的内容。学习完这篇文章,我相信你对Python退出时如何执行一段代码有了更深的理解。具体用法需要实践验证。在这里,边肖将为大家推送更多相关知识点的文章。欢迎关注!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/66412.html

(0)

相关推荐

  • leetcode笔记删除排序数组(leetcode排序中查找元素)

    技术leetcode如何寻找数组的中心索引小编给大家分享一下leetcode如何寻找数组的中心索引,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧

    攻略 2021年12月15日
  • java的getclass方法(java中class使用方法)

    技术Java中的Object.getClass()怎么使用这篇文章主要介绍“Java中的Object.getClass()怎么使用”,在日常操作中,相信很多人在Java中的Object.getClass()怎么使用问题上

    攻略 2021年12月22日
  • 香港服务器搭建网站哪家好

    技术香港服务器搭建网站哪家好使用香港服务器搭建网站有很多好处,主要有以下几点高端性能: 香港服务器租用最重要的好处之一是您可以从您的网站获得高端性能。有了这个,您可以获得大带宽和高存储容量的香港服务器租用。使用香港服务器

    礼包 2021年12月21日
  • 一个马的车标是什么车,“一匹马”的车标是什么车

    技术一个马的车标是什么车,“一匹马”的车标是什么车标志中有马的车的品牌有一个马的车标是什么车:法拉利、福特野马、保时捷等。站起来的马是法拉利。奔跑中的是福特野马,带盾牌的马是保时捷。
    法拉利的简介
    法拉利是一家意大利汽车

    生活 2021年10月20日
  • C++缺省参数怎么理解

    技术C++缺省参数怎么理解本篇内容主要讲解“C++缺省参数怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++缺省参数怎么理解”吧!什么叫缺省参数?缺省参数是声明或定

    攻略 2021年12月3日
  • 雄伟的反义词,气势宏大雄伟的意思写词语

    技术雄伟的反义词,气势宏大雄伟的意思写词语气势磅礴雄伟的反义词、气吞山河、一泻千里、地动山摇、波澜壮阔、排山倒海、气贯长虹、浩浩荡荡、声势浩大、汹涌澎湃、千军万马、气吞虹霓。1、一泻千里【解释】:泻:水往下直注。形容江河

    生活 2021年10月26日