由于 Python 中没有 main() 函数,当运行 Python 程序的命令被赋予解释器时,0 级缩进的代码将被执行。但是,在此之前,它将定义一些特殊变量。name 就是这样一个特殊变量。如果源文件作为主程序执行,则解释器将 name 变量设置为具有值“main”。如果此文件是从另一个模块导入的,则 name 将设置为模块的名称。
name 是一个内置变量,计算结果为当前模块的名称。 因此,它可以用于检查当前脚本是单独运行还是通过与 if 语句结合使用来导入其他地方,如下所示。
考虑两个单独的文件 File1 和 File2。
# File1.py print ("File1 __name__ = %s" %__name__) if __name__ == "__main__": print ("File1 is being run directly") else: print ("File1 is being imported")
# File2.py import File1 print ("File2 __name__ = %s" %__name__) if __name__ == "__main__": print ("File2 is being run directly") else: print ("File2 is being imported")
现在解释器得到了运行 File1.py 的命令。
python File1.py
输出 :
File1 name = main
File1 is being run directly
然后 File2.py 运行。
python File2.py
输出 :
File1 name = File1
File1 is being imported
File2 name = main
File2 is being run directly
如上所见,当File1.py直接运行时,解释器将__name__变量设置为__main__,当通过File2.py导入运行时,__name__变量设置为python脚本的名称
,即File1。因此,可以说如果 name == “main” 是程序的一部分,当脚本使用 python File1.py 之类的命令从命令行运行时运行。
感谢大家的阅读,有什么问题的话可以在评论中告诉我。希望大家能够给我来个点赞+收藏+评论 ,你的支持是海海更新的动力!后面我会持续分享前端 & 后端相关的专业知识。