如何在Python程序退出的时候,强制运行一些命令呢

如何在Python程序退出的时候,强制运行一些命令呢,第1张

程序一定会运行到clean()函数,但是,如果你代码写的多,你就应该知道,滥用tryexcept会让你非常痛苦。例如它突然给你打印一个运行异常: 1。你根本不知道是哪里出了问题,也不知道具体出了什么问题。为了找到问题,你必须让程序把错误爆出来。但这样一来,clean()又不能正常运行了。Python退出时强制运行一段代码

有什么办法,既能让程序报错,又能在报错已经还能运行clean()呢

这个时候,我们就可以使用Python自带的atexit这个模块了。它的使用方法非常简单:

import atexit

@atexitregister

def clean():

 print('清理环境相关的代码')

setup()

test()

这样一来,我们不需要显式调用clean函数了。无论程序正常结束,还是程序异常报错,clean函数里面的内容总会执行。

quit()   exit()

执行到此命令时,程序终止。

如果是程序陷入死循环,想强制结束,则按Ctrl + C。这个特别关键。

Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。

在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。这些准则被称为Python格言。在Python解释器内运行import this可以获得完整的列表。

扩展质料:

Python在执行时,首先会将py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,NET是一致的。

然而,Python Virtual Machine与Java或NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或NET的功能更强大。

而是说和Java 或NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。

基于C的Python编译出的字节码文件,通常是pyc格式。

除此之外,Python还可以以交互模式运行,比如主流 *** 作系统Unix/Linux、Mac、Windows都可以直接在命令模式下直接运行Python交互环境。直接下达 *** 作指令即可实现交互 *** 作。

参考资料:

Python-百度百科

一、功能不同

1、exit(0):表示程序正常退出。

2、exit(1):表示程序异常退出。

二、特点不同

1、exit(0):把exit用在main内的时候无论main是否定义成void返回的值都是有效的。

2、exit(1):等价于return(1),不需要考虑类型。

三、 *** 作顺序不同

1、exit(0):直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构。

2、exit(1):在调用 exit 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。

参考资料来源:百度百科-Exit()

参考资料来源:百度百科-Exit

return break 都可以终止函数的运行 exit(0) # 无错误退出 exit(1) # 有错误退出这两条语句一般都会加在程序的最后 因为exit是迫使系统去终止程序的运行

以上就是关于如何在Python程序退出的时候,强制运行一些命令呢全部的内容,包括:如何在Python程序退出的时候,强制运行一些命令呢、python里怎么终止程序的执行、python中exit(0)和exit(1)的用法和区别,谢谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9336889.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存