栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python if

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python if

目录

1、__name__ 变量

2、模块导入

3、程序入口


        学习 Python 编程时,经常会遇到下述代码:

if __name__ == '__main__':
    main()

        但似乎有它没它,脚本本身也能正常运行。这未免丈二和尚,摸不着头脑,何必多此一举呢?

        话说存在的就是合理的,就让我们看一下这句代码的作用和意义。

        首先理解 __name__ (前后均为两条下划线)变量的含义。

1、__name__ 变量

        __name__ 为 Python 的内置变量,可为 dir(__builtins__) 函数所查看,其数据类型为字符串。

        以当前目录 testA.py 文件为例,其代码为:

        运行该文件,结果为:

        可见,对于当前文件,其 __name__ == '__main__',也即 if __name__ == '__main__' 结果为 True。

2、模块导入

        Python 编程时,经常在当前文件顶端导入其它模块,只要运行到该 import 语句,导入模块的代码便会被执行。

        同样以当前目录 testB.py 文件为例,其代码为:

         运行该文件,结果为:

        可见模块 testA 被导入后运行的结果为模块名,而非 __name__ 变量值 __main__。

        为进一步说明问题,将 testA.py 代码修改为:

        分别运行 testA.py 和 testB.py,结果为:

        可见,运行 testB 时 testA 并未被执行,也即对testA 而言,if __name__ == '__main__' 结果为 False。

        综上可见,if __name__ == '__main__': 判断语句的主要作用就是:

直接运行文件时,结果为 True,当前模块被执行导入运行文件时,结果为 False,当前模块不被执行

        妥妥非请勿扰的赶脚……

3、程序入口

        此外,与 Java、C、C++ 等汇编语言不同,Python 作为解释型脚本语言,执行时无需将所有代码先行编译成中间代码,而是自模块顶行开始,逐行进行翻译执行,并不需要统一的 main() 函数作为程序的入口。因此,从某种意义上讲,if __name__ == ’__main__': 就像一个标志,告诉你,代码入口在此。一定意义上也有利于规范代码写作吧。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/767954.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号