在Python中的__name __(特殊变量)用法介绍

2021年3月9日15:43:56 发表评论 414 次浏览

由于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"
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.py之类的命令从命令行运行脚本时运行的程序的一部分。

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

注意怪胎!巩固你的基础Python编程基础课程和学习基础知识。

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: