Python中的if __name__ == "__main__"是什么意思?
1
2
3
4
5
def main():
...

if __name__ == "__main__":
main()

对于很多将 Python 作为第一个语言学习的新手,通常会对以上的if __name__ == "__main__"感到迷惑,那么它究竟是什么呢?

首先,我们要知道,在 Python 中运行 import <module>的时候,实质上就是运行一次你所导入的模块(<module>)。

__name__是一个 Python 的一个内置变量,当你的.py文件被直接运行时,该文件的__name__就会被赋值为__main__,所以当我们直接运行开头那个程序时,if内的语句main()就将可以执行。

但是,当我们使用import的方式导入这个文件的代码,情况便有所不同。当一个.py文件被import到你的主文件时,那个被引入的文件的__name__属性会被赋值为其文件名(仅保留.py前面的部分)。所以 if __name__ == "__main__"检测时,程序发现__name__属性的值并不是"__main__"(而是文件名),导致检查返回了false,内部的语句也就不会被执行了。

Python中的if name == “main“是什么意思? © 2024 by Ruotian is licensed under CC BY-NC-SA 4.0

上一篇
下一篇