python中main函数在运行中不是必须要写的_Python必备知识之“if __name__ == '__main__':”...
在学习Python的过程中经常会看到“if __name__ == '__main__':”这行代码,那么这行代码的作用究竟是什么呢?
“if __name__ == '__main__':”这行代码的主要作用是调试某个模块的正确性,将要调试的代码以缩进的形式写在“if __name__ == '__main__':”下面,这样当其他模块使用这个模块里的变量、方法或类的时候,就不会去执行“if __name__ == '__main__':”下面的代码了。
这是因为__name__表示当前执行的模块名,'__main__'表示顶层代码执行的作用域名称,当通过标准输入、脚本文件或是交互式命令读入的时候__name__就等于'__main__',模块可以通过检查其__name__属性值来得知代码是否在main作用域中执行。
例如,当前有test_one模块和test_two模块,test_one模块中定义了say_hello()函数;test_two模块中定义了say_hi()函数。
test_one模块代码如下:defsay_hello():print('hello')say_hello()
test_two模块代码如下:defsay_hi():print('How are you?')say_hi()
在上述两个模块中,函数调用后会分别输出相应的内容,此时,若在test_two模块中导入test_one模块,当调用say_hi()函数后,test_two模块会分别调用say_hello()函数和say_hi()函数,示例代码如下:# 导入test_one模块importtest_onedefsay_hi():print('How are you?')say_hi()
执行test_two模块代码,运行结果如下:helloHow are you?
从输出结果可以看出,在test_two模块中分别输出了say_hello()函数和say_hi()函数的输出结果。
为了让test_one模块中的代码,仅在test_one模块中运行,此时可在test_one模块中添加“if __name__ == '__main__':”,具体代码如下:defsay_hello():print('hello')# 令当前的代码仅在test_one模块中运行if__name__ =='__main__': say_hello()
此时,再次执行test_two模块,输出结果如下:Howare you?
从输出结果可以看出,此次输出并没有调用say_hello()函数,只调用了say_hi()函数。
“if __name__ == '__main__':”这行代码并非等同于C/C++、Java或C#等语言中的main()函数,在Python程序中这行代码也并非一定要存在于执行代码中,其主要作用是为了调试模块中代码的正确性。
同学们学会了吗?
python中main函数在运行中不是必须要写的_Python必备知识之“if __name__ == '__main__':”...相关推荐
- python主函数的作用_python中main函数的用法
原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...
- python 中main函数总结
Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数. 每个文件(模块)都可以任意写一些没有缩进的代码 ...
- python中main的含义及用法_python中main函数的用法
Python Python开发 Python语言 python中main函数的用法 什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main( ...
- main在python中的用法_python中main函数的用法
什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. main函数的作用? __ name__ == '__ mai ...
- 在python中有关函数的表达正确的是_在 Python 中有关函数的表达中正确的是( )。_学小易找答案...
[单选题]会稽有佳山水,名士多居之,爱好养生的王羲之常与( )等宴集于山阴之兰亭. [判断题]截交线既在截平面上,又在立体表面上,故截交线是截平面与立体表面的共有线,截交线上每一点均为其共有性. [单 ...
- python里删除range里的数字_python中range函数与列表中删除元素
一.range函数使用 range(1,5) 代表从1到4(不包含5),结果为:1,2,3,4 ,默认步长为1 range(1,5,2) 结果为:1, 3 (同样不包含5) ,步长为2 ...
- C++中main函数的参数
C++中main函数的参数 问题 对于一个C/CPP文件来说,一般都有main函数,一个程序的执行一定会是先从main函数这个入口开始,一个最基本的程序框架大概长这样: #include <st ...
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )
文章目录 一.JNI 中 main 函数声明 二.命令字符串切割并传入 main 函数 三.完整代码示例 1.完整 jni 代码 2.完整 java 代码 3.执行结果 四.参考资料 前置博客 : [ ...
- c语言规定在一个源程序中main函数的位置是什么?
一个c程序有且仅有一个main函数,除main函数之外可以有若干个其它的函数,每个函数实现某一特定的操作. C语言规定,在一个源程序中,main函数的位置可以任意. 因为:在一个C语言源程序中,程序总 ...
最新文章
- MySQL高级 - SQL优化 - 子查询优化
- 代码大全阅读笔记01
- delphi 调用php接口_《细说PHP》第四版 样章 第23章 自定义PHP接口规范 5
- swift 二进制读写_Swift二进制搜索树
- 内存中常见异常值的解释(0xcccccccc 0xcdcdcdcd 0xfeeefeee等)
- python directx_directX嵌入pyside
- libiec61850探究【1】-第一个MMS通讯实例
- 敏捷与CMMI的同与不同
- Redis可视化工具
- Windows 搭建Syslog、RSyslog日志服务器
- C语言:数组排序(冒泡法排序)
- linux静态ip解析花生壳域名
- 郭霖:手把手教你实现 App 360 度旋转看车效果
- Java计算花费时间的模板设计模式
- HtmlHelp调用chm帮助文档使用
- 图片文件压缩并上传至阿里云OSS
- Python爬取猫眼「碟中谍」全部评论
- 怎么解除该游戏的地域限制问题
- js将时间戳转换成正常时间格式两种方法
- 基于LeNet5的手写数字识别,在ModelArts和GPU上复现
热门文章
- reg51.h和reg52.h头文件
- 《代码大全》代码生成
- RDBMS即关系数据库管理系统(Relational Database Management System)
- 网站服务器空间选择,网站服务器空间选择
- python加颜色_python字符串加颜色显示
- Kubernetes之yaml文件
- java分布式架构的发展
- python数组中一列拆分,根据Python中的数组值拆分数组
- mysql数据库innodb恢复命令_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据
- 开元弧焊机器人编程_【数据】2019年中国焊接机器人市场发展现状与趋势分析...