python进阶-- 02 如何使用模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python进阶-- 02 如何使用模块相关的知识,希望对你有一定的参考价值。
1.模块与包的概念
1.1概念
模块:代码多了之后,放在一个.py文件中不易维护,将代码拆分到多个.py文件中,每个.py文件就是一个模块。
包:模块多了之后,也容易重名,将每个开发开发的模块可以放到不同的包中,引用的时候使用包名.模块名。
1.2优势
同一变量名的变量在不同模块中互不影响
同一模块名的模块在不同包中互不影响
1.3引用举例
# p1->包名,util->模块名
>>> import p1.util
>>> print p1.util.f(2,10)
1.4如何区分包和普通文件夹
在文件系统中,一个包就是一个文件夹;
在python中,每一个包的下面必须要有一个__init__.py文件;
__init__.py文件即使是空的,也要有。
2.模块的导入
2.1直接import
import math
>>> math.pow(2, 0.5) # pow是函数
1.4142135623730951
>>> math.pi # pi是变量
3.141592653589793
2.2使用from ... import xxx
from math import pow, sin, log
>>> pow(2, 10)
1024.0
>>> sin(3.14)
0.0015926529164868282
2.3导入的模块中的方法/变量冲突问题
直接import的不会有冲突问题
使用from ... import xxx的如果有冲突,可以使用别名的方式
from math import log
from logging import log as logger # logging的log现在变成了logger
print log(10) # 调用的是math的log
logger(10, ‘import from logging‘) # 调用的是logging的log
3.动态导入模块
3.1背景
如果导入的模块不存在,Python解释器会报 ImportError 错误;
有的时候,两个不同的模块提供了相同的功能
3.2原理
利用ImportError错误,通过异常处理try-except,我们可以实现动态导入模块
另,import xxx as xxx可以动态导入相同名称的模块为不同的使用名称
3.3举例
try:
from cStringIO import StringIO
except ImportError:
from StringIO import StringIO
或
try:
import simplejson as json
except ImportError:
import json
4.__future__试用新特性
4.1背景
Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。
4.2举例
# Python 2.7的整数除法运算结果是整数,Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数
>>> print 10/3
3
>>> from __future__ import division
>>> print 10/3
3.33333333333
# 在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b
>>> from __future__ import unicode_literals
>>> s = ‘am I an unicode?‘
>>> print isinstance(s, unicode)
True
5.安装第三方模块
5.1easy_install
5.2 python内置的pip(已经内置到2.7.9)
安装时候选择pip功能
安装完成后,即可在命令行使用pip install web.py来安装web.py这个第三方模块
第三方模块安装完成后,使用import web即可正常使用
第三方模块寻找:https://pypi.python.org/pypi
5.3python第三方模块
http://www.cnblogs.com/mmbbflyer/p/5787494.html
http://www.cnblogs.com/tester-l/p/5735230.html
以上是关于python进阶-- 02 如何使用模块的主要内容,如果未能解决你的问题,请参考以下文章