Python模块和包
来源:互联网 发布:sql查询工资相同语句 编辑:程序博客网 时间:2024/05/17 22:16
在Python中,同样具有模块和包来管理代码
模块:每一个python文件就是一个模块,例如index.py
这就是一个模块;
包:在文件系统中,一个文件夹就是一个包,在python中,一个文件夹中需要有__init__.py
文件,每个文件夹中必须要有这个文件,这样python才可以把这个文件夹当成一个包来处理;
1.导入python的内建模块math
import mathprint math.sqrt(4) # 执行math模块中sqrt开平方函数结果输出:2
倘若只想用到math模块中的几个函数,那我们不必把整个math模块都导入进来:
from math import pow, sin, log, sqrtprint sqrt(4) # 这样我们可以直接用sqrt()函数
如果这样的话会出现一个问题:如果两个模块中都存在相同名字的函数(方法),引入到同一个文件中就会产生冲突。
这种情况下我们可以不用from...import...
方法引入,我们将用上面的第一种引用方法引入:
import math, loggingprint math.log(10)print logging.log(10)
当然如果非要用from...import...
方法的话也是有解决办法的,
我们可以给冲突的函数名称用as
变更一下:
from math import logfrom logging import log as logger # 现在loggin里的log函数名在本文件中变成了loggerprint log(10) # 调用的是math模块中的log函数print logger(10) # 调用的是logging模块中的log函数
2.动态导入模块
如果要导入的模块不存在,python将会报错,这样我们的代码就不能执行下去了,为了解决这个问题,我们需要动态的导入模块;
有的时候两个不同的模块提供了相同的功能,这样我们可以利用捕捉错误语句来动态的导入模块:
python 2.6/2.7提供了json模块,但python 2.5以下版本没有json模块,不过可以安装一个simplejson模块,这两个模块提供的函数名和功能都一模一样。
下面动态导入json模块:如果json模块在当前python版本中存在,那么将其引进来,如果不存在,将会报错,try
将捕获错误,并在捕获到指定错误时执行except
语句。这样就会将simplejson命名为json引进来。
try: import jsonexcept ImportError: import simplejson as jsonprint json.dumps({'python':2.7})
3.__future__
的使用 __future__
是个模块,当python新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__
中,以便旧的代码能在旧版本中测试新特性。
例如:
①在python 3.x中,字符串统一为unicode,不需要加前缀u,而以字节储存的str则必须加前缀b,利用__future__
的unicode_literals在python 2.7中编写unicode字符串。
from __future__ import unicode_literalss = 'hello word'print isinstance(s, unicode)
②在python 2.7中整数除法结果仍是整数,但是python 3.x已经改进了整数的除法算法,用’/’除得到浮点数,用’//’除得到整数,利用__future__
中的division可以在python 2.7中引入3.x的除法法则:
2.7中:
pirnt 10/3 # 3
3.x中:
print 10/3 # 3.3333333335print 10//3 # 3
在2.7中使用3.x的除法法则:
from __future__ import divisionprint 10/3 # 3.3333333333335
最后提一点注意 from __future__ import ???
语句要写在代码的开头,因为不写在开头会报错,python不知道要用哪个版本的规则去解释代码;
3.python安装第三方模块
python提供的模块管理工具:
①easy_install
②pip(推荐,已经内置到python 2.7.9版本中)
如果你的python版本比2.7.9高,那么你可以直接在终端使用pip:
在终端输入
pip install web.py # 这样我们就安装了web这个模块
然后就可以在文件中引入web模块:
import web
贴出查找第三方模块的名字的网站:
http://pypi.python.org
- Python 模块和包
- Python模块和包
- Python 模块和包
- python模块和包
- python 模块和包
- Python模块和包
- Python模块和包
- Python包和模块
- Python模块和包
- python模块和包
- Python模块和包
- Python 模块和包
- [Python]模块和包
- python模块和包
- python 包和模块
- python 模块和包
- python 模块和包
- python 包和模块
- C#_类的属性成员
- 变量的延迟初始化
- c++作业4
- 《Cracking the Coding Interview程序员面试金典》----翻转子串
- Notification Light
- Python模块和包
- Spring4定时任务配置
- It's not a Bug, it's a Feature! UVA
- caffe:pycaffe的使用
- linux
- 【jQuery Mobile】学习jQuery Mobile 第二弹
- [BZOJ1818][Cqoi2010]内部白点(扫描线+线段树)
- 工作中常用的linux命令
- CollapsingToolbarLayout 收缩时状态栏颜色设置不生效