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

举报
海拥 发表于 2023/03/29 09:23:48 2023/03/29
【摘要】 由于 Python 中没有 main() 函数,当运行 Python 程序的命令被赋予解释器时,0 级缩进的代码将被执行。但是,在此之前,它将定义一些特殊变量。name 就是这样一个特殊变量。如果源文件作为主程序执行,则解释器将 name 变量设置为具有值“main”。如果此文件是从另一个模块导入的,则 name 将设置为模块的名称。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")

现在解释器得到了运行 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 之类的命令从命令行运行时运行。

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

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

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。