1,模块定义
python
一般状况下,当咱们的程序代码太多的时候,就必需要使用一种方式来组织咱们的代码。这样作能够提升代码的复用率,也可使程序更加的结构化,有助于后期的扩展和维护。那这种方式一般状况咱们的作法是把代码分割成函数,或者组织成类。
linux
可是当有不少不少类或者函数的时候,又可能会出现命名冲突,因而就引入了命名空间的概念。windows
命名空间是个大的概念,在各类语言的实现方式不同。socket
在PHP中就直接叫作命名空间,划分方式是经过文件夹的名称和路径。函数
在Java中称之为包,划分方式也是经过文件夹的名称和路径。工具
那么,在Python中,一样也叫作包,固然了,划分方式也是采用文件夹名称和路径,Python和Java不一样之处在于Python要求每一个包下面必需要包含一个叫“__init__.py”的文件,无论里面有没有内容!spa
那么什么是模块呢?命令行
Python中,任意的一个“.py”文件均可以看作是一个模块。不过,咱们当前讨论的模块是组织在包中的,就像下面这样:ip
上面的案例中,定义了两个包 iopackage 和 socketpackage,每一个包下面含有两个模块。作用域
为何是两个?由于咱们说在包中每一个“.py”文件就是一个模块,因此“__init__.py”这个文件,虽然特殊,可是实际上它也是一个模块。
2,使用模块
模块的使用,须要分两种状况说明。
第一种:没有包的时候,怎么使用模块?
第二种:有包的时候,怎么使用模块?
能够看到,模块的导入,主要使用 import 关键字。若是,你的模块位于某一个包中,则须要使用 from 关键字来通知 python 是从那个包中来导入那个模块。
2.1 import 补充
一般状况下,当使用 import pk_name 的时候,导入的实际上是 __init__.py 模板,那么其它模块式不可用的。
若是你要使用包中其它的模块,则就须要采用 from pk_name import module_name 这种形式,或者给它起个别名,这样之后就可使用这个别名来引用到模块:from pk_name import module_name as alise_module_name
固然,你也可使用 from pk_name import * 可是这个须要在模块中作一些配置,这个后面【模块探究】会说到。
3,模块的路径
当使用 import 导入模块的时候,python会根据“环境变量”的路径来搜寻模块所在的位置,找到以后就会把它引入到当前的位置,并且只引入一次!在引入以后,会生成一个 .pyc 的文件,该文件是真正的模块文件的一个编译后的版本,python会直接使用它,固然删除它对原模块文件没有任何的影响,在必要的时候,python仍是会去重建它。
如今,来打印一下 python 的环境变量的路径:
能够看到,python 在上面列出来的全部的目录中去寻找对应的模块文件,当有些时候,你可能须要去更改一下这个值,以便python可以正确的找到你的模块(虽然不提倡这么作),就像下面这样:
4,安装第三方模块
python有一种称谓叫作“自带电池”,说的就是python中有各类各样的第三方模块。这些模块可使你的开发变的很容易。
那在使用一个三方模块以前,仍是要先安装它。
python 中安装第三方模块式经过 setuptools 这个工具完成的,目前封装了 setuptools 包管理工具备:easy_install 和 pip,目前官方推荐使用的是 pip。
若是你是使用 linux 系统那么,安装 pip 这个步骤就能够跳过。若是你是使用 windows 那么在安装 python 的时候请确保勾选了 pip 和 add python.exe to path。
那如今,咱们使用的是 easy_install来安装,因此仍是要先安装一下 easy_install,
打开连接:https://pypi.python.org/pypi/setuptools#windows
找到对应的:
右击连接另存为,而后在命令行下执行:
安装成功,就是这样子:
运行: easy_install 若是,提示命令不存在,则须要把 “F:\Python27\Scripts” 加入到环境变量中。
而后咱们来安装一个地三方包:Python Imaging Library 是python下一个很是强大的图像处理包。
全部的 python 包,都会在 https://pypi.python.org/pypi 这里进行注册,你能够从里面搜寻有用的包。
咱们要安装的这个包的安装名称叫:PIL ,所以运行命令:easy_install PIL
当报错以下的时候:你应该去给定的连接的地方,先下载并安装一下vc9,用来编译python包。
当安装 PIL 成功以后,就能够在程序中使用它。
那么如何使用它呢?先得看看它有什么!
5,模块探究
探究的模块,这里以上面一直用到,可是没对它作解释的模块“pprint”来作演示。
首先,经过 dir 函数,能够看到一个模块的结构,就像是这样:
首先,咱们看到经过 dir 函数,打印出来不少的字符串信息,固然也就是变量或者函数信息。
那有些变量在前面加了“单下划线”,而有的再先后都加了“双下划线”,而有些则什么都没有加。
在 python 中,经过变量名这种特殊的写法,来设置变量的“做用域”。
约定俗称的是:先后都有“双下划线”的变量,具备特殊的意义,在python中可能会做为关键字采用,所以不建议开发者去这么定义变量。前面带“单下划线”的变量,表示该变量的做用范围仅限在当前模块中,开发者不该该在包的外面经过相似“moduleName.varName”的形式来访问它,那这里不该该并非表明不能。其它的变量则表示属于公共的变量,没有“限制”。
变量“__all__”表示该模块中,当使用 from pk_name import * 这种方式导入包的时候,有哪些方法能够被导入。
变量“__file__”表示该模块的路径
变量“__doc__”则是该模块的一些描述信息
如今,我在对应的“__file__”目录下,找到 pprint.py 这个文件,截图以下:
那在使用 模块 以前 ,仍是应该先去看一下模块的相关说明以及相关可调用的方法以及对应方法的说明,这样使用起来就没有那么陌生了!
------------------------------------------------------华丽的分割线-------------------------------------------------
人性一点儿,笑个 16 像素的 ^_^