type
status
date
slug
summary
tags
category
icon
password
- 关于
if __name
__
== "__main__":
这需要从程序入口的角度来解释。对于C、C++等编译型语言,代码需要被编译成二进制代码才能运行;他们需要一个main函数来作为程序的入口。而python则是脚本语言,他是动态的逐行解释运行,也就是说,它从脚本的第一行开始运行,没有统一的入口。
一个Python源码文件(.py)除了可以被直接运行外,还可以作为模块(也就是库),被其他.py文件导入。不管是直接运行还是被导入,.py文件的最顶层代码都会被运行(Python用缩进来区分代码层次),而当一个.py文件作为模块被导入时,我们可能不希望一部分代码被运行。
- "'__name__"是Python的内置变量,用于指代当前模块。
哪个模块被直接执行时,该模块”__name__”的值就是”__main__”,当被导入另一模块时,
"__name__”的值就是模块的真实名称。用一个类比来解释一下:记得小时候要轮流打算教室,轮到自己的时候(模块被直接执行的时候),我们会说今天是“我”(__main___)值日,称呼其他人时,我们就会直接喊他们的名字。所以,“___main__“就相当于当事人,或者说第一人称的“我”。
所以,当运行"if __name__=='__main__:”语句时,如果当前模块时被直接执行,__name__的值就
是__main__,条件判断的结果为True,"if __name___=='___main__'"下面的代码块就会被执行。
- 作者:CrystalPuNK
- 链接:https://crystalpunk.top/article/1905d734-b731-80f6-a168-c97f72ce2cd6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。