模块
随着python越来越强大,相同的代码也在不段复杂。为了能够更好更方便的维护,人们越来越愿意把很多写出来的功能函数保存在不同的文件夹中,这样在用的时候调用,不用的时候可以忽略。这就是模块的由来。
优点:
可以大大的提供代码的可维护性,不必从零开始,当一个模块编写完毕,就可以被其他地方引用。
模块分为三种:
自定义模块(根据自己的需求自己写的)、第三方模块(在网上有很多人把自己的模块放在网上分享)、内置模块(python自己内部的模块)
| 一、自定义模块: |
为了避免函数名和变量名冲突,相同的函数名和变量名存在不同的模块中,因此不必担心名字和模块有冲突。但是要尽量不要把函数名字和内置函数冲突。更多内置函数点击这里
在不同的人编写模块时,为了避免模块名的冲突,Python又引入了按目录来组织模块的方法,称为包(Package)。例如,wulaoer.py文件就是一个名字叫wulaoer的模块,为了避免wulaoer模块与其他模块有冲突,于是可以通过包来组织模块,避免冲突。方法是选择一个顶层报名,比如mycompany,只要包名不与其他冲突,模块就不会有冲突。现在wulaoer模块的名字就变成了mycompany.wulaoer,这里需要注意的是每个包目录下都会有一个__init__.py的文件,而且这个文件是必须存在的,否则这个目录就只能是一个普通的目录而不是包。
如下图:
模块的导入:
在强大的python背后有很多模块一直在支撑,在使用的时候如何使用?以下有几种模块导入方法:
import macpath #直接导入macpath模块
from macpath import normcase #导入macpath模块里的normcase函数
from macpath import norm_error as rename #导入macpath模块里的normcase函数,并给函数一个别名
from macpath import * #导入macpath模块里的所有函数
from macpath import normcase #导入macpath模块里的normcase函数
from macpath import norm_error as rename #导入macpath模块里的normcase函数,并给函数一个别名
from macpath import * #导入macpath模块里的所有函数
所有的模块以哪个路径为基准?即:sys.path
#!/usr/bin/env python
# --*--coding:utf-8 --*--
import sys
print sys.path
# --*--coding:utf-8 --*--
import sys
print sys.path
输出结果:
['E:\\python2\\mycompany', 'C:\\Python27\\lib\\site-packages\\paramiko-1.10.1-py2.7.egg', 'E:\\python2', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']
以上任何一个路径为基准。一般都会选择放在site-packages目录下。需要的时候直接调用。
如果没有的你想要的路径,可以通过sys.path.append(‘路径’)添加。
通过os模块可以获取各种目录,例如:
import sysimport os
pre_path = os.path.abspath('../')
sys.path.append(pre_path)
pre_path = os.path.abspath('../')
sys.path.append(pre_path)
| 二、开源模块 |
下载安装方法:
yum
pip
apt-get
...
pip
apt-get
...