📜  为什么Python在完成后会自动退出脚本?

📅  最后修改于: 2022-05-13 01:54:20.617000             🧑  作者: Mango

为什么Python在完成后会自动退出脚本?

Python是一种脚本语言。这意味着Python代码在Python解释器的帮助下逐行执行。当Python解释器遇到文件结束字符时,它无法从脚本中检索任何数据。这个 EOF(end-of-file)字符与在Python中从文件读取数据时通知文件结束的 EOF 相同。

每个Python脚本的末尾都有一个 EOF字符,指示解释器停止执行代码。在处理连接到 tty 设备的标准输入时,我们可以使用 UNIX 上的 CTRL+D 和 Windows 上的 CTRL+Z, ENTER 产生类似的结果。

考虑这个简单的代码,它将一个数字作为用户输入并返回该数字的两倍。

Python3
a = int(input("Enter number: "))
#  waiting for user input...
  
print("Twice of the number: ", 2 * a)


Python3
import atexit
  
a = 5
print("Twice of a:", a*2)
  
atexit.register(print, "Exiting Python Script")


尝试在程序等待用户输入时按下 EOF字符(取决于您的操作系统)。该程序将在遇到 EOF字符时立即终止,如下所示:

退出Python脚本

请注意,程序在程序完成之前遇到 EOF 时会抛出EOFError异常。

如何检测脚本退出?

我们可以使用 atexit 模块来检测脚本退出。以下代码使用 atexit 模块的register()函数检测脚本退出。

atexit.register()方法将一个函数作为参数,该函数将在脚本退出时执行。

蟒蛇3

import atexit
  
a = 5
print("Twice of a:", a*2)
  
atexit.register(print, "Exiting Python Script")

输出:

Twice of a: 10
Exiting Python Script