1. 程式人生 > >python進階-- 02 如何使用模塊

python進階-- 02 如何使用模塊

解釋器 3.1 普通 維護 visio ini 功能 我們 png

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 如何使用模塊