网站首页 > 基础教程 正文
当 Python 解释器读取运行 Python 文件时,它首先会设置一些特殊的变量。然后执行文件中的代码。其中一个变量称为:__name__。它表示模块或脚本的名称。当脚本作为主程序执行时,其值设置为 __main__。如果将脚本作为模块导入,则变量的值将设置为模块的实际名称。
假设我们有以下两个文件:
# my1.py
print("我是my1.py")
# my2.py
if __name__ == "__main__":
print("我是my2.py")
如果我们运行这两个文件,分别输出“我是my1.py”、“我是my2.py”。my2.py 作为脚本文件运行,if 语句条件成立,脚本运行有相应输出。
我们再编写两个文件:
# my3.py
import my1
print("我是my3.py")
# my4.py
import my2
print("我是my4.py")
分别将 my1.py、my2.py 作为模块导入。运行结果分别如下:
我是my1.py
我是my3.py
我是my4.py
在 my3.py 中,my1.py 作为模块导入,my3.py 运行时,my1.py 中的代码也被执行。输出两行文字。
在 my4.py 中,my2.py 作为模块导入,my4.py 运行时,my2.py 中的代码使用 if __name__ == "__main__" 进行判断,my2.py 不是作为主程序运行,而是作为模块使用,相应的输出没有被执行。输出一行文字。
简而言之,if __name__ == "__main__" 允许文件作为脚本运行时执行相应代码,但在作为模块导入时不执行相应代码。
我们了解了 if __name__ == "__main__" 在 Python 中的作用。如果要在脚本运行期间收集用户输入,最好使用它,并避免在导入模块时产生副作用。
文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!
猜你喜欢
- 2025-05-11 Python——PySide2入门(2) 之 QPushButton
- 2025-05-11 在ubuntu环境下部署svn可视化管理工具iF.SVNAdmin详细教程
- 2025-05-11 这篇if __name__ == '__main__'讲解的实在太通透了,它还能影响这些
- 2025-05-11 python if多条件并列判断的三种方法
- 2025-05-11 「Python条件结构」嵌套if:判断三角形及三角形的类型
- 2025-05-11 SQL用了两年多,分享2个最常用的小技巧
- 2025-05-11 揭秘Python中的魔法语句:if __name__ == '__main__':
- 2025-05-11 测开不得不会的python条件判断语句if
- 2025-05-11 彻底搞懂Python中的if __name__ == '__main__':让你的代码更专业!
- 2025-05-11 python自学者的分享:if-else、for、while语句
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)