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,内容如下:

# coding: utf-8
# 当前模块是 hello.py
# 首先,你要有一个模块叫world.py,随便写啥都行 # 导入模块
import world
# 打印导入的模块的名字(__name__)
print(world.__name__) # 在当前文件打印__name__,这是当前模块的属性
print(__name__) # 看看当前模块的名字是不是__main__
if __name__ == '__main__':
print("It's main") # 看看当前模块的名字是不是hello
if __name__ == 'hello':
print("It's hello")

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

# coding: utf-8

if __name__ == '__main__':
print("It's main") if __name__ == 'world':
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. p2148 [SDOI2009]E&D

    传送门 分析 https://www.luogu.org/blog/flashblog/solution-p2148 代码 #include<bits/stdc++.h> using na ...

  2. Ubuntu下成功安装台式机网卡realtek的rtl8188eu芯片驱动并实现AP功能

    1,下载驱动 https://github.com/lwfinger/rtl8188eu 使用注意: https://github.com/lwfinger/rtl8188eu/issues/3 2. ...

  3. UIView 和 CALayer区别 为啥有UIView还要CALayer?

    今天,被坑了,面试的时候没回答出来,特此记录一下 一.继承结构 1: UIView的继承结构为: UIResponder : NSObject UIResponder是用来响应事件的,也就是UIVie ...

  4. 第07章-Spring MVC 的高级技术

    Spring MVC 的高级技术 1. Spring MVC配置的替代方案 1.1 自定义DispatcherServlet配置 AbstractAnnotationConfigDispatcherS ...

  5. (转)XSS危害——session劫持

    原文地址:http://www.cnblogs.com/dolphinX/p/3403027.html 在跨站脚本攻击XSS中简单介绍了XSS的原理及一个利用XSS盗取存在cookie中用户名和密码的 ...

  6. Listview 利用Datapager进行分页

    原文:http://lgm9128.blog.163.com/blog/static/421734292010513111851101/ <asp:ListView ID="ListV ...

  7. .netcore部署到IIS上出现HTTP Error 502.5 - Process Failure问题解决

    首先网上是有很多解决方案,但是对我这个错误完全没用 如果你们没有环境首先得预装环境如下 1.首先在bing.com下搜索asp.net core download, 然后打开搜索到的信息.NET Do ...

  8. C# 中关于汉字与16进制转换的代码

    /// <summary> /// 从汉字转换到16进制 /// </summary> /// <param name="s"></par ...

  9. 四、命令行模式和Node交互模式

    请注意区分命令行模式和Node交互模式. 看到类似C:\>是在Windows提供的命令行模式: 在命令行模式下,可以执行node进入Node交互式环境,也可以执行node hello.js运行一 ...

  10. 初学python - 零碎的知识点

    * 标识符命名规则 数字,字母,下划线组成,数字不能开头区分大小写 * 注释 单行:#:多行:‘ ‘ ‘ ,“”“: * 进制标识 b:二进制 o:八进制 d:十进制x:十六进制 转换:format( ...