1.__name__是啥

  __name__ 是Python的模块名字。

  手册解释:The name of the module.

2.__name__的值

  首先,一个变量一次只有一个值。

  其次,__name__的值python自动给。

  比如,你的文件叫 hello.py,它在引入之后,__name__就是hello.

3.__main__是啥

  是当前直接执行的模块的名字。python给的。

  也就是说,当你的模块正在执行时,它的名字(__name__)就是 __main__。

  那上面那个执行时还叫不叫hello呢,答案是不叫。他自己执行时叫自己 __main__,别人才叫他hello。

4.if __name__ == '__main__' 是啥

  很明显,是一个判断。

5.有什么用

  这个下面的代码是模块直接执行时才去运行。

  有一些代码必须在模块直接执行时运行。可能你现在还没遇到。

  你现在运行的代码,执行可能是单模块,所以对于你来说,判断和不判断都可以执行。

6.看例子

  我有一个hello.py,内容如下:

  1. # coding: utf-8
  2. # 当前模块是 hello.py
  3. # 首先,你要有一个模块叫world.py,随便写啥都行
  4.  
  5. # 导入模块
  6. import world
  7. # 打印导入的模块的名字(__name__)
  8. print(world.__name__)
  9.  
  10. # 在当前文件打印__name__,这是当前模块的属性
  11. print(__name__)
  12.  
  13. # 看看当前模块的名字是不是__main__
  14. if __name__ == '__main__':
  15. print("It's main")
  16.  
  17. # 看看当前模块的名字是不是hello
  18. if __name__ == 'hello':
  19. print("It's hello")

  现在,为了便于理解,在world.py写了以下代码:

  1. # coding: utf-8
  2.  
  3. if __name__ == '__main__':
  4. print("It's main")
  5.  
  6. if __name__ == 'world':
  7. print("It's world")

  我们执行hello.py,输出如下

    It's world
    world
    __main__
    It's main

  嗯,剩下的自己理解。

if __name__ == '__main__' 详解的更多相关文章

  1. Python3:if __name__ == '__main__' 详解

    一般在风格比较好的代码中会有一行if __name__ == '__main__' :代码,这里说明一下这句代码的用处,先上两个代码test1.py和test2.py: # test1.py prin ...

  2. Python中 if __name__ == '__main__': 详解

    一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行和作为模块被其他模块调用. __name__:每一个模块都有一个内置属性__name_ ...

  3. Python中if __name__ == "__main__"详解

       比如你编写一个test.py文件,一个python文件就可以看作是一个python的模块,这个python模块(.py文件)有两种使用方式:直接运行使用和作为模块被其他模块调用.   解释下__ ...

  4. Python中的__name__和__main__含义详解

    1背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ......   if __name == "__m ...

  5. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  6. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  7. python time 模块详解

    Python中time模块详解 发表于2011年5月5日 12:58 a.m.    位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...

  8. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

  9. python异步并发模块concurrent.futures入门详解

    concurrent.futures是一个非常简单易用的库,主要用来实现多线程和多进程的异步并发. 本文主要对concurrent.futures库相关模块进行详解,并分别提供了详细的示例demo. ...

随机推荐

  1. 无限级分类及生成json数据

    第一步,先去数据库查询类别数据,然后交给生成json数据的函数处理,代码如下: /*生成类别JSON数据*/ public function wirteJson(){ $dataInfo = \thi ...

  2. HTML5之:link与title的区别

    [link]标签:外联导入样式 例1:<link rel="stylesheet" type="text/css" href="theme.cs ...

  3. eWebEditor9.x整合教程-Xproer.WordPaster

    版权所有 2009-2017 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webplug/wordpa ...

  4. Java 错误结果Throw/Throws

    目录 java处理异常方式    throw的作用    throws的作用    方法原理    举例    总结 个人实例 1.java处理异常方式 在java代码中如果发生异常的话,jvm会抛出 ...

  5. vue记住密码功能

    话不多说,直接上代码. html部分: <el-form :model="ruleForm2" :rules="rules2" ref="rul ...

  6. 【转】开源视频录制库LandscapeVideoCamera

    非常强大的android 视频录制库,可以选择视频尺寸以及视频质量,只允许横屏录制. 使用Android自带的Camera应用可以录制视频,只需发送MediaStore.ACTION_VIDEO_CA ...

  7. wp7启动+幻灯片效果

    using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Wi ...

  8. 宏(使用注意事项、主要用途)------c++程序设计原理与实践(进阶篇)

    使用宏的时候一定要小心:在c中没有真正有效的方法来避免使用宏,但宏带有严重的副作用,因为宏不遵守通常的c(或c++)作用域和类型规则——它只是一种文本替换.   宏的使用注意事项: 所以宏名全部大写. ...

  9. Django的文件上传以及预览、存储

    思路: 文件上传通过前端的input标签,input设置display:none属性. 内容显示需要让前端通过<img>标签读取图片内容,可以通过<label>标签连接< ...

  10. 【bzoj4709】[Jsoi2011]柠檬 决策单调性+dp

    Description Flute 很喜欢柠檬.它准备了一串用树枝串起来的贝壳,打算用一种魔法把贝壳变成柠檬.贝壳一共有 N (1 ≤ N ≤ 100,000) 只,按顺序串在树枝上.为了方便,我们从 ...