您的位置:首页 > 编程语言 > Python开发

python学习(1):__name__变量在模块调用时所起的作用

2017-03-01 15:54 239 查看
我们在模块中编写函数,供调用该模块的文件使用。

当我们在编写模块时,也写了一些测试代码,供编写模块的人自己使用。

但是这些测试对于调用者是没用的,也会执行。

举个例子:首先编写模块,并提供测试代码

def addFunc(a,b):
return a+b

print('test计算结果:',addFunc(1,1)) #测试代码

调用以上模块:
import test
print('调用test模块执行的结果是:',test.addFunc(12,23))

那么,执行结果是:
test计算结果: 2
调用test模块执行的结果是: 35

显然,第一句并不是调用者所需要的
为了解决这一问题,python提供了一个系统变量:__name__

注:name两边各有2个下划线

__name__有2个取值:当模块是被调用执行的,取值为模块的名字。当模块是直接执行的,则该变量取值为:__main__

于是乎,被调用模块的测试代码就可以写在if语句里了,如下:

def addFunc(a,b):
return a+b

if __name__ == '__main__':
print('test计算结果:',addFunc(1,1))

这样,如果模块被调用,测试代码就不会被执行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: