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))
这样,如果模块被调用,测试代码就不会被执行了。
当我们在编写模块时,也写了一些测试代码,供编写模块的人自己使用。
但是这些测试对于调用者是没用的,也会执行。
举个例子:首先编写模块,并提供测试代码
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))
这样,如果模块被调用,测试代码就不会被执行了。
相关文章推荐
- python学习二:路径搜索、模块加载、变量命名初探
- Python学习笔记-1(变量、类型、函数、类、作用域)
- 2.27 学python 模块项目 __name__ __file__变量 目录结构 json pickle
- Python学习5:__name__使用以及自定义模块
- python学习之if __name__ == 'main': 的作用和原理
- Python中if __name__=="__main__" 语句在调用多进程Process过程中的作用分析
- [Python学习] 专题六.局部变量、全局变量global、导入模块变量
- Python中关于模块的 '__name__' 变量的使用
- python学习(2):自定义包结构及__init__.py模块和__all__变量的使用
- python 模块中的 __name__ 变量
- [置顶] Python 模块里函数的调用方法和import语句的作用(适合初学者理解函数的调用)
- python 学习记录(5)-变量、模块名的命名规则及random模块使用
- [Python学习] 专题六.局部变量、全局变量global、导入模块变量
- 【Python模块】functools —— 作用于可调用对象的高阶函数集合
- Python第八天 模块 包 全局变量和内置变量__name__ Python path
- Python学习笔记(1)__name__变量
- 关于tensorflow的变量(variable) 变量作用域(variable_scope) 名字作用域(name_scope)的学习记录
- Python学习之模块间互相调用方法详解
- Python学习笔记(1)__name__变量
- Python学习笔记(一)--Python基础知识:变量、数据类型、模块与字符串