Python 教程之变量(10)—— Python 中的 __name__ (一个特殊变量)

1,159 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 26 天,点击查看活动详情

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

本篇文章到此就结束了,相关文章:

感谢大家的阅读,有什么问题的话可以在评论中告诉我。希望大家能够给我来个点赞+收藏+评论 ,你的支持是海海更新的动力!后面我会持续分享前端 & 后端相关的专业知识。