在学习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__':”...相关推荐

  1. python主函数的作用_python中main函数的用法

    原博文 2020-03-27 20:25 − **什么场景下会有main函数?** 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. **ma ...

  2. python 中main函数总结

    Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数. 每个文件(模块)都可以任意写一些没有缩进的代码 ...

  3. python中main的含义及用法_python中main函数的用法

    Python Python开发 Python语言 python中main函数的用法 什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main( ...

  4. main在python中的用法_python中main函数的用法

    什么场景下会有main函数? 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行. main函数的作用? __ name__ == '__ mai ...

  5. 在python中有关函数的表达正确的是_在 Python 中有关函数的表达中正确的是( )。_学小易找答案...

    [单选题]会稽有佳山水,名士多居之,爱好养生的王羲之常与( )等宴集于山阴之兰亭. [判断题]截交线既在截平面上,又在立体表面上,故截交线是截平面与立体表面的共有线,截交线上每一点均为其共有性. [单 ...

  6. python里删除range里的数字_python中range函数与列表中删除元素

    一.range函数使用 range(1,5)   代表从1到4(不包含5),结果为:1,2,3,4   ,默认步长为1 range(1,5,2)   结果为:1, 3  (同样不包含5) ,步长为2 ...

  7. C++中main函数的参数

    C++中main函数的参数 问题 对于一个C/CPP文件来说,一般都有main函数,一个程序的执行一定会是先从main函数这个入口开始,一个最基本的程序框架大概长这样: #include <st ...

  8. 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )

    文章目录 一.JNI 中 main 函数声明 二.命令字符串切割并传入 main 函数 三.完整代码示例 1.完整 jni 代码 2.完整 java 代码 3.执行结果 四.参考资料 前置博客 : [ ...

  9. c语言规定在一个源程序中main函数的位置是什么?

    一个c程序有且仅有一个main函数,除main函数之外可以有若干个其它的函数,每个函数实现某一特定的操作. C语言规定,在一个源程序中,main函数的位置可以任意. 因为:在一个C语言源程序中,程序总 ...

最新文章

  1. MySQL高级 - SQL优化 - 子查询优化
  2. 代码大全阅读笔记01
  3. delphi 调用php接口_《细说PHP》第四版 样章 第23章 自定义PHP接口规范 5
  4. swift 二进制读写_Swift二进制搜索树
  5. 内存中常见异常值的解释(0xcccccccc 0xcdcdcdcd 0xfeeefeee等)
  6. python directx_directX嵌入pyside
  7. libiec61850探究【1】-第一个MMS通讯实例
  8. 敏捷与CMMI的同与不同
  9. Redis可视化工具
  10. Windows 搭建Syslog、RSyslog日志服务器
  11. C语言:数组排序(冒泡法排序)
  12. linux静态ip解析花生壳域名
  13. 郭霖:手把手教你实现 App 360 度旋转看车效果
  14. Java计算花费时间的模板设计模式
  15. HtmlHelp调用chm帮助文档使用
  16. 图片文件压缩并上传至阿里云OSS
  17. Python爬取猫眼「碟中谍」全部评论
  18. 怎么解除该游戏的地域限制问题
  19. js将时间戳转换成正常时间格式两种方法
  20. 基于LeNet5的手写数字识别,在ModelArts和GPU上复现

热门文章

  1. reg51.h和reg52.h头文件
  2. 《代码大全》代码生成
  3. RDBMS即关系数据库管理系统(Relational Database Management System)
  4. 网站服务器空间选择,网站服务器空间选择
  5. python加颜色_python字符串加颜色显示
  6. Kubernetes之yaml文件
  7. java分布式架构的发展
  8. python数组中一列拆分,根据Python中的数组值拆分数组
  9. mysql数据库innodb恢复命令_MySQL 如何对InnoDB使用Undrop来恢复InnoDB数据
  10. 开元弧焊机器人编程_【数据】2019年中国焊接机器人市场发展现状与趋势分析...