Python 模块、模块导入

Python 进阶之模块

模块定义:

要实现某个功能的所有代码的集合 称之为模块

模块的种类:

1.自定义模块

2.内置模块

3.第三方模块

模块类型:

模块主要分为两种类型 一种是文件形式(.py文件)、一种是“包” 包其实就是一个包含__init__.py 文件的文件夹,init文件主要用来初始化包,python 通过检测__init__.py文件是否存在来判断文件夹是否为包,__init__.py文件可以为空 也可以包含__all__=[‘func1,func2’] 其中func1,func2就是包中包含的Python文件

模块的导入以及调用模块中的方法(函数):

导入模块之前首先我们要知道python调用模块的步骤

1. 检索可用路径(这个可用路径类似于linux下的PATH全局变量)

2. 根据路径的优先级来查找模块,其中当前路径的优先级最高

3. 从可用路径中查找模块

通过以上三点我们可以知道要使我们的模块可以被python检索到,模块就必须放在可用路径内,利用sys模块下的sys.path方法可以查看python所检索的路径范围并以列表的方式输出

如下图所示

clip_image002

通过上图可以看到python的所有检索范围,而排在第一位的就是当前目录,其中最后一个(c:\\Python27\\lib\\site-packages 不同环境路径可能不同 记住site-packages就好了)为标准化的第三方模块存放路径,一般都将模块放在这里。

如果想要自己定义模块的存放位置可以先添加自己的路径到sys.path,通过sys.path.append(‘dir’)来添加自己的模块存储路径,其实就是像目录列表中添加一个元素

clip_image004

OK 了解完python的检索路径 下面我们开始看下如何导入模块,导入模块分为以下几种方法

方法1:

import module

调用:

module.func()

Example:

首先我们定义一个模块test.py

clip_image006

导入模块

clip_image008

方法二:

from module import func

调用:

func()

Example:

clip_image010

从上可以看出这种导入方法调用的时候是很方便的,但是也有他的弊端 比如有两个模块 a,b 两个模块中都有一个hello()方法 这时候就会方法冲突 所以一般不建议用这种方式

另外这种方法还有一种不太严谨的导入方式 如下:

clip_image012

别名:

import module as py_mode

调用:

module.py_mode

clip_image014

上面讲到了.py文件的导入方式 那么包的导入方式是怎样的呢? 其实包的导入方式类似

clip_image016

hello模块内容如下

clip_image017

clip_image018

posted on 2015-12-18 11:40  Alanpy  阅读(382)  评论(0编辑  收藏  举报

导航