Python中__name__的使用实例

yipeiwu_com5年前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利用re,bs4,requests模块获取股票数据

python利用re,bs4,requests模块获取股票数据

今天闲来无聊无意间看到了百度股票,就想着用python爬一下数据,于是就找到了东方财经网,结合这两个网站,写了一个小爬虫,数据保存在文件中,比较简单的示例,就当做用来练习正则表达式和Be...

老生常谈Python之装饰器、迭代器和生成器

在学习python的时候,三大“名器”对没有其他语言编程经验的人来说,应该算是一个小难点,本次博客就博主自己对装饰器、迭代器和生成器理解进行解释。 为什么要使用装饰器 什么是装饰器?“装...

python显示天气预报

复制代码 代码如下:import urllib2import jsonimport stringurl ='http://m.weather.com.cn/data/101090502....

PyQt QCombobox设置行高的方法

之前在网上查找了很多相关资料,有说设置icon高度来支持item的,有说要添加自己写指定高度的view来填充的,但是对于一个只有文字的Qcombobox来说,这些无疑是太过繁琐了。研究了...

TENSORFLOW变量作用域(VARIABLE SCOPE)

举例说明 TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。 官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变...