文档章节

__name__属性

LinuxerRky
 LinuxerRky
发布于 2015/06/26 18:20
字数 310
阅读 14
收藏 1
先明白什么是主模块。如果一个模块的"__name__"属性为"__main__",

则这个模块为主模块。我们可以把"__name__"看作是一个变量,以这个变量的值是否为主模块。

首先得出两个结论:

    1.如果一个模块是被直接执行,则"__name__"的值为"__main__"

    2.如果一个模块是被导入,则"__name__"的值为这个被导入的模块的值


两个例子:

#modules.py

def main():
    print "This is %s" % __name__

if __name__ == "__main__":
    main()
else:
    print "This is not __main__

# 输出结果:This is __main__

  

#test.py

from modules import main

main()

print __name__


#  输出结果:        
#This is not __main__
#This is modules.
# __main__

  过程解释:当我执行modules.py文件的时候,首先对if进行判断,因为这是直接执行,所以"__name__"属性值为"__main__"。因此执行"main()"语句。所以输出的结果为"__main__"。

    而在test.py中,因为我们导入了modules模块。在调用modules模块的main()函数时,此时的"__name__"属性的值为modules,所以if语句结果为False,因此执行else后面的语句。然后进入main()函数,所以输出的结果为"This is modules"。

而testpy中的"print   __name__"语句,因为是自己直接执行,因此结果为"__main__"






© 著作权归作者所有

LinuxerRky
粉丝 0
博文 24
码字总数 12302
作品 0
长沙
系统管理员
私信 提问
深入理解对象的数据属性与访问器属性

创建对象的方式有两种:第一种,通过new操作符后面跟Object构造函数,第二种,对象字面量方式。如下 var person = new Object();person.name = 'Nicy';person.age = 21;person.sayName = fu...

阳光小点儿
2018/08/15
0
0
关于JavaScript对象,你所不知道的事(二)- 再说属性

说完了对象那些不常用的冷知识,是时候来看看JavaScript中对象属性有哪些有意思的东西了。 不出你所料,对象属性自然也有其相应的特征属性,但是这个话题有点复杂,让我们先从简单的说起,对...

LiBin
2017/11/29
0
0
NTFS文件系统-MFT的属性头

前面说过MFT是有一个个属性组成,那么每个属性的具体结构又是如何呢?MFT属性的类型很多,但它们都有个共同的特点,那就是每个属性都有属性头和属性体。属性头又分为常驻属性和非常驻属性。常...

数据恢复v
2018/07/02
0
0
Property属性对象目录 总览概括

属性描述对象 来自《JavaScript 标准参考教程(alpha)》,by 阮一峰 目录 概述 JavaScript提供了一个内部数据结构,用来描述一个对象的属性的行为,控制它的行为。这被称为“属性描述对象”...

sinat_34719507
2017/07/10
0
0
18.Swift学习之属性与方法

类的属性介绍 Swift中属性有多种 存储属性 存储属性是最简单的属性,它作为类实例的一部分,用于存储常量和变量 可以给存储属性提供一个默认值,也可以在初始化方法中对其进行初始化 下面是存...

YungFan
2018/10/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

如何有效地计算JavaScript中对象的键/属性数量?

计算对象的键/属性数的最快方法是什么? 是否可以在不迭代对象的情况下执行此操作? 即不做 var count = 0;for (k in myobj) if (myobj.hasOwnProperty(k)) count++; (Firefox确实提供了一...

技术盛宴
20分钟前
2
0
百度网址安全中心拦截解除的办法分享

临近2019年底,客户的公司网站被百度网址安全中心拦截了,公司网站彻底打不开了,影响范围很大,于是通过朋友介绍找到我们SINE安全公司寻求帮忙解封,关于如何解除百度的安全拦截提示,下面就...

网站安全
31分钟前
3
0
Tomcat8源码分析-启动流程-start方法

上一篇:Tomcat8源码分析-启动流程-load方法 前面讲了启动流程中的Catalina.load,进一步调用绝大部分组建的init操作,主要完成对server.xml解析,并根据解析的结果结合设置的Rule(规则)构造...

特拉仔
40分钟前
6
0
Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍

Xamarin.FormsShell基础教程(7)Shell项目关于页面的介绍 轻拍标签栏中的About标签,进入关于页面,如图1.8和图1.9所示。它是对应用程序介绍的页面。 该页面源自Views文件夹中的AboutPage.x...

大学霸
46分钟前
3
0
一步一步理解Impala query profile(一)

很多Impala用户不知道如何阅读Impala query profile来了解一个查询背后正在执行的操作,从而在此基础上对查询进行调优以充分发挥查询的性能。因此我想写一篇简单的文章来分享我的经验,并希望...

九州暮云
47分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部