__Python中的name__;(一个特殊变量)

由于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
喜欢就支持一下吧
点赞6 分享