Python中__name__的使用实例

yipeiwu_com6年前Python基础

1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为'__main__'

Py1.py

复制代码 代码如下:

#!/usr/bin/env python
def test():
 print '__name__ = ',__name__
if __name__ == '__main__':
 test()

Py2.py
复制代码 代码如下:

#!/usr/bin/env python
import Py1.py
 
def test():
 print '__name__ = ',__name__
if __name__ == '__main__':
 test()
 print ‘Py1.py __name__ = ',Py1.__name__

执行结果:
复制代码 代码如下:

__name__=__main__
Py1.py __name__=Py1

通过结果可以知道,Py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少BUG,提高程序的健壮性。
复制代码 代码如下:

if __name__ == '__main__':
 test()

相关文章

巧用Python装饰器 免去调用父类构造函数的麻烦

先看一段代码: 复制代码 代码如下: class T1(threading.Thread): def __init__(self, a, b, c): super(T1, self)._...

利用Pandas和Numpy按时间戳将数据以Groupby方式分组

首先说一下需求,我需要将数据以分钟为单位进行分组,然后每一分钟内的数据作为一行输出,因为不同时间的数据量不一样,所以所有数据按照最长的那组数据为准,不足的数据以各自的最后一个数据进行补足...

Python探索之ModelForm代码详解

这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来,对,你没猜错,相信自己的英语水平。 先来一个简单的例子来看一下这个东西怎么用: 比如我们...

Python内建模块struct实例详解

本文研究的主要是Python内建模块struct的相关内容,具体如下。 Python中变量的类型只有列表、元祖、字典、集合等高级抽象类型,并没有像c中定义了位、字节、整型等底层初级类型。...

tensorflow: variable的值与variable.read_value()的值区别详解

tensorflow: variable的值与variable.read_value()的值区别详解

问题 查看 tensorflow api manual 时,看到关于 variable.read_value() 的注解如图: 那么在 tensorflow 中,variable的值...