07 模塊

来源:互联网 发布:oracle在线数据库 编辑:程序博客网 时间:2024/06/05 08:06


模塊和包的概念

等同於java中的Package

模塊名=文件名(無後綴)

在文件系統中,包就是文件夾,模塊就是xxx.py文件

每層包下面都有__init__.py文件


導入模塊

>>> import math

>>> math.pow(2, 0.5)

>>> math.pi


精確導入函數、變量

>>>form math import pow, sin, log

>>> pow(2, 10)

>>> sin(3.14)


起別名

form logging import log as logger


判斷是否爲文件或目錄

import os

print os.path.isdir(r'/data/input')

print os.path.isfile(r'/data/input/file1')


動態導入模塊

如果導入的模塊不存在,Python解釋器會報ImportError錯誤。

有的時候,兩個不同的模塊提供了相同的功能,比容StringIO和cStringIO都提供了StringIO這個功能。這是因爲Python是動態語言,解釋執行,因此Python代碼運行速度慢。如果要提高Python代碼的運行速度,最簡單的方法是把某些關鍵函數有C語言重寫,這樣就能大大提高執行速度。

同樣的功能,StringIO是純Python代碼編寫的,而cStringIO部分函數是C編寫的,因此cStringIO運行速度更快。

利用ImportError錯誤,可以動態導入模塊:

try:

    from cStringIO import StringIO

expect ImportError

    from StringIO import StringIO


上述代碼先嘗試從cStringIO導入,如果失敗了,再嘗試從StringIO導入。

try的作用是捕獲錯誤,並再捕獲到指定錯誤時執行except語句。



使用__future__

Python的新版本會引入新的功能,但是,實際上這些功能在一個老版本中就已經存在了。要“試用”某一新的特性,就可以通過導入__future__模塊的某些功能來實現。

例如:

Python 2.7中

>>> 10 / 3    #3

Python 3.x中

>>> 10 / 3    #3.33333333

>>> 10 // 3    #3


在2.7中引入3.x的除法規則:

>>> from __future__ import division

>>> 10 / 3    #3.33333333


當新版本的一個特性與舊版本不兼容時,該特性就會再舊版本中添加到__future__中,以便在舊版本中測試新的特性。


安裝第三方模塊

Python的模塊:內置的  第三方的


模塊管理工具:-pip (推薦,已內置到Python2.7.9)

pip install 模塊名 (pypi.python.org查找模塊名)

例子:pip install web.py



0 0
原创粉丝点击