2

另外,为什么我们使用下划线?毕竟,我将 main 方法定义为main(),而不是__main__()

4

3 回答 3

2

当 Python 解释器读取源文件时,它会执行在其中找到的所有代码。在执行代码之前,它会定义一些特殊的变量。例如,如果 python 解释器将该模块(源文件)作为主程序运行,它会将特殊 __name__变量设置为具有 value "__main__"。如果这个文件是从另一个模块导入的,__name__将被设置为模块的名称。

对于您的脚本,假设它作为主要功能执行,例如您说过类似

python threading_example.py

在命令行上。设置特殊变量后,它将执行导入语句并加载这些模块。然后它将评估 def 块,创建一个函数对象并创建一个名为 myfunction 的变量,该变量指向该函数对象。然后它将读取 if 语句并看到__name__它等于 "__main__",因此它将执行那里显示的块。

这样做的原因之一是有时您编写一个可以直接执行的模块(一个 .py 文件)。或者,它也可以被导入并在另一个模块中使用。通过进行主要检查,您可以只在您想将模块作为程序运行时才执行该代码,而不是在有人只想导入您的模块并自己调用您的函数时执行它。

取自这里:if __name__ == "__main__": 怎么办?

于 2013-08-29T08:57:23.077 回答
0

当 python 解释器将模块(源文件)作为主程序运行时,它将特殊的 __name__ 变量设置为具有值“__main__”,而不是 main()。

于 2013-08-29T08:57:19.343 回答
0

Python 不知道像 C 或 Java 这样的“主”函数。你在这里有更多的解释:what-does-if-name-main-do

于 2013-08-29T08:56:45.247 回答