Python __name__=='__main__'作用详解
前面章节已经对模块及其用法做了详解的介绍,相信有很多读者已经开始去尝试阅读别人的代码了(通常阅读比自己牛的人写的代码,会让自己的技术水平飞速提高)。不过,在阅读别人写的自定义模块时,经常会看到有如下这行判断语句:
一般情况下,当我们写完自定义的模块之后,都会写一个测试代码,检验一些模块中各个功能是否能够成功运行。例如,创建一个 candf.py 文件,并编写如下代码:
在 candf.py 模块文件的基础上,在同目录下再创建一个 demo.py 文件,并编写如下代码:
为了实现这一点,就需要使用 Python 内置的系统变量 __name__,它用于标识所在模块的模块名。例如,在 demo.py 程序文件中,添加如下代码:
因此,
if __name__ == '__main__':这行代码的作用是什么呢?本节就详解讲解以下它的作用。
一般情况下,当我们写完自定义的模块之后,都会写一个测试代码,检验一些模块中各个功能是否能够成功运行。例如,创建一个 candf.py 文件,并编写如下代码:
''' 摄氏度和华氏度的相互转换模块 ''' def c2f(cel): fah = cel * 1.8 + 32 return fah def f2c(fah): cel = (fah - 32) / 1.8 return cel def test(): print("测试数据:0 摄氏度 = %.2f 华氏度" % c2f(0)) print("测试数据:0 华氏度 = %.2f 摄氏度" % f2c(0)) test()单独运行此模块文件,可以看到如下运行结果:
测试数据:0 摄氏度 = 32.00 华氏度
测试数据:0 华氏度 = -17.78 摄氏度
在 candf.py 模块文件的基础上,在同目录下再创建一个 demo.py 文件,并编写如下代码:
import candf print("32 摄氏度 = %.2f 华氏度" % candf.c2f(32)) print("99 华氏度 = %.2f 摄氏度" % candf.f2c(99))运行 demo.py 文件,其运行结果如下所示:
测试数据:0 摄氏度 = 32.00 华氏度
测试数据:0 华氏度 = -17.78 摄氏度
32 摄氏度 = 89.60 华氏度
99 华氏度 = 37.22 摄氏度
为了实现这一点,就需要使用 Python 内置的系统变量 __name__,它用于标识所在模块的模块名。例如,在 demo.py 程序文件中,添加如下代码:
print(__name__) print(candf.__name__) 其运行结果为: __main__ candf可以看到,当前运行的程序,其 __name__ 的值为 __main__,而导入到当前程序中的模块,其 __name__ 值为自己的模块名。
因此,
if __name__ == '__main__':
的作用是确保只有单独运行该模块时,此表达式才成立,才可以进入此判断语法,执行其中的测试代码;反之,如果只是作为模块导入到其他程序文件中,则此表达式将不成立,运行其它程序时,也就不会执行该判断语句中的测试代码。所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频