在 Python 中,__name__ == '__main__'
是一个常用的结构,它的作用是检查当前脚本是否是作为主程序运行。我们首先来了解一下它的基础知识。
Python 文件可以作为脚本运行,也可以作为模块导入。每个 Python 文件都有一个内置的 __name__
属性,这个属性的值取决于如何调用这个文件。
- 如果这个文件被直接运行(例如,通过命令行
python myfile.py
),那么__name__
的值就是'__main__'
。 - 如果这个文件被其他文件导入(例如,通过
import myfile
),那么__name__
的值就是这个文件的名字,也就是'myfile'
。
这种特性使得我们可以在文件中编写一些代码,这些代码只有在该文件被直接运行时才执行,而在文件被导入时不会执行。这就是 if __name__ == '__main__':
的作用。
下面是一个简单的例子,假设我们有一个名为 myfile.py
的文件:
def hello_world():
print("Hello, World!")
if __name__ == '__main__':
hello_world()
如果你直接运行这个文件(python myfile.py
),__name__
的值就是 '__main__'
,因此 hello_world()
函数就会被调用,你将在终端看到 “Hello, World!”。
但是如果你在另一个文件中导入 myfile
(import myfile
),__name__
的值就是 'myfile'
,因此 hello_world()
函数不会被调用。
这种技术常常用于编写既可以作为脚本运行,也可以作为模块导入的 Python 文件。在 if __name__ == '__main__':
下面的代码通常包含了测试代码或只在该文件作为脚本运行时才需要的代码。