📌  相关文章
📜  Python中的 __name__ (一个特殊变量)

📅  最后修改于: 2022-05-13 01:54:20.802000             🧑  作者: Mango

Python中的 __name__ (一个特殊变量)

由于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 之类的命令从命令行运行时运行。