由于Python中没有main()函数,当运行Python程序的命令被赋予解释器时,将执行0级缩进的代码。然而,在此之前,它将定义一些特殊变量__name_u就是这样一个特殊变量。如果源文件作为主程序执行,解释器会将_name__;变量设置为具有值“_main__;”。如果此文件是从另一个模块导入的,_name__;将设置为该模块的名称。 __name_;是一个内置变量,其计算结果为当前模块的名称。 因此,通过将当前脚本与if语句结合起来,可以使用它来检查当前脚本是单独运行还是导入到其他地方,如下所示。
null
考虑两个单独的文件FIL1和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" ) |
Now the interpreter is given the command to run File1.py. python File1.py Output : File1 __name__ = __main__ File1 is being run directly And then File2.py is run. python File2.py Output : 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的命令从命令行运行脚本时,该程序会运行。皮耶。
本文由 哈希特·阿格拉瓦尔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END