Python学习笔记-模块介绍(二)-模块导入和执行
2014-12-09 14:13
609 查看
之前的一篇博文介绍了python中模块的概念和基本使用方法,模块作为python语言中的基本单元,可以用来编写公用库函数或对象以便重复使用。同时模块还可以作为独立文件进行运行,之前也已经提到,只要是导入了模块文件,那么PVM就会依次执行模块文件中的所有语句。本篇主要介绍模块使用的一些进阶,首先定义一个模块module_2.py,内容如下:
# -*- encoding:utf-8 -*-'''module_2.py模块的内容''' print(__name__) def sum(a,b):return a+b if __name__ == "__main__":import sysprint(sys.argv[0])a = int(sys.argv[1])b = int(sys.argv[2])print(sum(a,b))上面的这段代码基本上就包含了本篇文章要说的内容了:
一、__name__变量说明
__name__是一个全局变量,在模块内部是用来标识模块的名称的。上面的例子中有一个打印__name__变量的语句,比如我们在python的交互模式下执行导入可以看到如下结果:>>>import module_2module_2可以看到,通过使用import的方式导入模块后,打印的__name__值就是我们刚才说的模块的名称。另外,如果是通过python解释器直接执行模块,则__name__会被设置为__main__这个字符串值,如下:
D:\temp>python module_2.py 2 3__main__module_2.py5我们通过windows命令行直接执行module_2这个模块文件,可以看到的结果输入如上,打印的__name__值为__main__。通过这个特性我们可以将一个模块文件既当做普通的lib库供其他模块使用,又可以当做一个顶层执行文件进行执行,只是使用方式不一样而已。 1、当成lib库使用时只需要在其他模块中使用import导入该模块即可; 2、当成执行模块时通过python解释器直接运行该模块,然后在模块文件中最后写上上面例子中的if判断语句段即可。 通过__name__变量来区分是执行模块还是导入模块其实就非常类似java中的main函数了,不同的是java中是约定的方法名称,而python中约定是变量名称,异曲同工之效。
二、参数传递
参数传递主要是指作为执行模块时需要传递的参数,通过python解释器执行某一个执行模块传递参数的使用如下:D:\temp>python 模块名称(包含.py后缀) 参数1 参数2 参数3 ....对于上面给定的例子执行就是:
D:\temp>python module_2.py 2 3__main__module_2.py5python解释器会将所有传递的参数存储在sys.argv这个列表中,所有的参数都被当成字符串进行处理。同时,即使不传递任何参数,也会有一个默认的参数sys.argv[0]标识当前模块的名称。所以我们自己使用的参数都是从sys.argv[1]开始的,下标1表示第一个传递的参数,依次类推。
相关文章推荐
- 【python学习笔记】如何说明import语句对模块导入的检查?
- Python学习笔记-模块介绍(一)-模块概念和基本使用
- 【python学习笔记】模块导入的搜索路径顺序是什么?
- Python学习笔记-模块介绍
- python学习笔记——自定义模块导入
- python核心编程学习笔记-2016-08-02-02-模块动态导入
- python学习笔记5.2-包和模块的导入
- python学习笔记(九)将函数存储在模块中,导入模块
- Python学习笔记-模块介绍(三)-模块包和搜索路径
- python学习系列之OS模块介绍
- python_模块与函数学习笔记
- Python模块学习 datetime介绍
- Python学习笔记4-pexpect模块,pxssh
- python学习笔记15-执行环境
- Python模块学习 datetime介绍
- Python3.3 学习笔记2 - 模块
- Python模块学习 datetime介绍
- python学习笔记7-模块整理
- Python2.7 学习笔记 (二)—— 函数,模块,正则
- python学习笔记16-各种模块和开放工具收集整理