在大多数编排得好一点的脚本或者程序里面都有这段if __name__ == 'main': ,虽然一直知道他的作用,但是一直比较模糊,收集资料详细理解之后与大家分享。

1、这段代码的功能

一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的过程,在if __name__ == 'main': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。

举个例子,下面在test.py中写入如下代码:

1

print "I'm the first."

2

if __name__=="__main__":

3

print "I'm the second."

并直接执行test.py,结果如下图,可以成功print两行字符串。即,if __name__=="__main__": 语句之前和之后的代码都被执行。

然后在同一文件夹新建名称为import_test.py的脚本,只输入如代码:

import test

执行import_test.py脚本,输出结果如下:

只输出了第一行字符串。即,if __name__=="__main__": 之前的语句被执行,之后的没有被执行。

2、运行的原理

每个python模块(python文件,也就是此处的test.py和import_test.py)都包含内置的变量__name__,当运行模块被执行的时候,__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而“__main__”等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,__name__ == 'main'结果为真。

同样举例说明,我们在test.py脚本的if __name__=="__main__":之前加入print __name__,即将__name__打印出来。文件内容和结果如下,

可以看出,此时变量__name__的值为"__main__";

再执行import_test.py,模块内容和执行结果如下:

此时,test.py中的__name__变量值为test,不满足__name__=="__main__"的条件,因此,无法执行其后的代码。

python if name main 的作用_Python----基础之if __name__ == 'main': 的作用和原理相关推荐

  1. python中的点的作用_Python基础学习中关键点的作用(三),python,重点,之,函数,3

    函数学习之匿名函数 定义: 匿名函数是指在python中使用lambda所创建函数,称之为匿名函数. 特点: 创建函数不再使用def创建,而是使用lambda关键字创建一个形式主义的函数. 匿名函数的 ...

  2. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数

    **上一篇写到了,基本的数据类型,今天重点来讲一下字符串的功能函数** 回顾一下上篇的内容: 一.int 整型,在python 3 中与long型合并 可以达到 -922337203685477580 ...

  3. python中try语句的用法和作用_python基础知识三——try与except处理异常语句

    try/except介绍 与其他语言相同,在python中,try/except语句主要是用于处理程序正常执行过程中出现的一些异常情况,如语法错(python作为脚本语言没有编译的环节,在执行过程中对 ...

  4. python布尔值的作用_Python基础教程详解布尔变量的作用

    布尔值也叫真值,在Python开发(http://www.maiziedu.com/course/python-px/)中所有的值都被解释为真值,标准的真值为true和false.那么布尔变量在Pyt ...

  5. python凯撒密码详解_Python基础题目集--课堂案例

    这些案例均为在校期间学习<python基础编程>课程的案例,适合初学者练手~ 1.输入分数,返回等级 ''' 分数区间为0~100,等级:A(>=90).B(>=80).C(& ...

  6. python赋值语句的一般格式为_Python 基础语法

    Python 基础语法 Python 语言与 Perl,C 和 Java 等语言有许多相似之处.但是,也存在一些差异. 在本章中我们将来学习 Python 的基础语法,让你快速学会 Python 编程 ...

  7. python中使用函数的优点_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

  8. python处理一亿条数据_Python基础数据处理库

    Numpy 简介 import numpy as np Numpy是应用Python进行科学计算的基础库.它的功能包括多维数组.基本线性代数.基本统计计算.随机模拟等.Numpy的核心功能是ndarr ...

  9. python各种类型的数据拼接_python基础2 数据类型、数据拼接、数据转换

    一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...

最新文章

  1. Linux下的USB总线驱动 1
  2. android 关于页面,解析android中的帮助、about、关于作者、HELP等提示页面
  3. python自动化办公入门书籍推荐-用python进行办公自动化都需要学习什么知识呢?...
  4. 电脑网络安全_电脑网络:计算机网络安全,从入门到入狱
  5. 注册注解BeanDefinition
  6. python机器学习2021年6月19日09:35:06
  7. 博客开园了~~~~~~
  8. Focal Loss-RetinaNet算法解析
  9. 大型网络整体安装与配置解决方案
  10. 国军标GJB150三防试验(霉菌+盐雾+湿热)
  11. 无线ac配置dhcp服务器,华硕RT-AC86U路由器怎么设置DHCP功能
  12. freemarker word模板导出图片循环
  13. FinalShell下载安装教程
  14. 51单片机——ADC模数转换、DAC数模转换PWM C语言入门编程
  15. python-windows命令行启动appium及杀掉对应接口进程
  16. RabbitMQ特殊应用
  17. 什么是案例管理模型和符号(CMMN)
  18. 汽车电子之NXP车规级芯片
  19. 带头双向循环链表的模拟实现
  20. 将数据导入到Excel表格

热门文章

  1. vscode 显示多个文件_优秀的 VS Code 前端开发扩展
  2. linux 命令rsss,[译] linux内存管理之RSS和VSZ的区别
  3. 在浏览器里,从输入 URL 到页面展示,这中间发生了什么?-学习笔记
  4. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题
  5. C - Line-line Intersection Gym - 102220C(线段相交)
  6. ?类型 ,?类型(值)
  7. Java基础(三十五)Math、Random类和数字格式化(String.format方法)
  8. E. 存储过程(procedure)
  9. WPF 自定义快捷键命令(COMMAND)(转)
  10. iOS-NSThread编程详解