本文最后更新于230 天前,如有错误请发送邮件到yaoshengliy@gmail.com
引言
时间:3月26日
课后作业题目:if _name_ == ‘_main_’的含义,why?
分析
if _name_ == '_main_'是 Python 中的一种 常见写法,用于判断当前脚本是否是作为 主程序执行。
其作用是:
运行一个 Python 脚本时,Python 会自动为这个脚本创建一些内置变量,其中之一就是 __name__。
- 如果这个脚本是 直接运行 的(例如:
python myscript.py),那么__name__的值就是'__main__'。 - 如果这个脚本是 被导入 到其他脚本中作为模块使用(例如:
import myscript),那么__name__的值就是'myscript'(即文件名)。
所以if _name_ == '_main_'的作用是当且仅当当前文件是被直接运行时,下面的代码才会执行。
这样做有以下好处:
- 防止在被导入时执行不该执行的代码
- 模块复用性更强
- 便于测试
示例
有一段主程序代码:
# hello.py
def say_hello():
print("Hello, world!")
if __name__ == '__main__':
say_hello()
执行python hello.py,输出Hello, world!
此时新建一个文件main.py,在头部使用import hello,表示导入使用上述hello模块,此时执行python main.py,没有任何输出。
因为 hello.py 中的 say_hello() 被包含在 if __name__ == '__main__': 判断里,只有直接运行 hello.py 时才会执行。被导入时不会执行,保证了模块的复用性。






