if __name__ == '__main__':
是 Python 中的一种常见用法,通常出现在脚本的入口点。它的作用是确保某些代码仅在直接运行该脚本时执行,而在作为模块导入到其他脚本中时不会被执行。
详细解释:
__name__
的含义:- 每个 Python 文件都被看作是一个模块。
- 当 Python 解释器运行一个文件时,特殊变量
__name__
会被设置为字符串'__main__'
。 - 如果文件是被导入到另一个脚本中,
__name__
会被设置为该文件的模块名(通常是文件名,不包括扩展名)。
if __name__ == '__main__':
的作用:- 判断当前模块是否是被直接运行的脚本。
- 如果条件为真,意味着这个脚本是直接运行的,而不是通过
import
导入的。
- 为什么需要它:
- 避免在模块被导入时,意外执行一些不需要的代码。
- 通常用于包含测试代码或程序的入口逻辑。
示例代码:
# my_module.py
def greet(name):
print(f"Hello, {name}!")
if __name__ == '__main__':
print("This script is being run directly.")
greet("Alice")
直接运行:
$ python my_module.py
This script is being run directly.
Hello, Alice!
被导入:
# another_script.py
import my_module
my_module.greet("Bob")
输出:
Hello, Bob!
注意:当
my_module
被导入时,if __name__ == '__main__':
块中的代码不会运行。
总结:
if __name__ == '__main__':
是编写 Python 脚本时的最佳实践,可以使代码更具模块化和可复用性。
看不懂就看:【Python中的 if name == 'main' 是干嘛的?】https://www.bilibili.com/video/BV1T66mYpE7s?vd_source=221be3a32db153b0f13c6e9ec61fb128
Comments NOTHING