likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 56

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

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

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

转载自:https://juejin.cn/post/7134593058858860558
评论
请登录