Python 中的模塊
Python 模塊是一個 Python 文件,定義了各種功能接口。把復(fù)雜的功能封裝為模塊(又稱為庫),將功能實現(xiàn)的細(xì)節(jié)隱藏起來,使用該模塊(庫)的程序員不需要了解實現(xiàn)的細(xì)節(jié)。通過調(diào)用模塊封裝好的功能,可以用僅僅幾行 Python 代碼實現(xiàn)某項復(fù)雜的功能,例如可以用一行代碼就實現(xiàn)一個 Web 服務(wù)器。
在 Python 的應(yīng)用領(lǐng)域中,如:web 開發(fā)、人工智能、網(wǎng)絡(luò)爬蟲、數(shù)據(jù)分析等領(lǐng)域,已經(jīng)存在了大量的模塊,使用這些模塊就可以輕松開發(fā)出應(yīng)用程序。
1. 內(nèi)置模塊
Python 中的模塊分為兩類:
- 內(nèi)置模塊,由 Python 官方提供,包含在 Python 的安裝包中,安裝完 Python 后即可使用
- 第三方模塊,由 Python 愛好者提供,需要用戶額外安裝
Python 提供了多個內(nèi)置模塊,提供了日常編程中許多問題的標(biāo)準(zhǔn)解決方案,常見的內(nèi)置模塊如下:
模塊名 | 功能描述 |
---|---|
os | 提供操作系統(tǒng)的 IO 訪問等功能 |
sys | 提供獲取命令行參數(shù)等功能 |
math | 提供各種常見的數(shù)學(xué)運算函數(shù) |
random | 提供產(chǎn)生隨機數(shù)的功能 |
json | 提供對 json 文件的解析功能 |
datetime | 提供日期、時間的相關(guān)功能 |
2. 模塊語法
2.1 math 模塊簡介
Python 的 math 模塊提供了很多數(shù)學(xué)運算功能,例如:三角函數(shù)、求平方根、求對數(shù)等功能:
函數(shù)接口 | 功能描述 |
---|---|
fabs | 計算絕對值 |
sin | 正弦函數(shù) |
cos | 余弦函數(shù) |
sqrt | 求平方根 |
在下面的小節(jié),將使用 math 模塊作為例子講解 Python 中模塊的語法。
2.2 import 語句
import 語句將指定模塊名的模塊導(dǎo)入到程序中,然后程序即可使用模塊中定義的函數(shù),語法如下:
import 模塊名
使用 import 語句的示例如下:
>>> import math
>>> math.fabs(-123.0)
123.0
- 在第 1 行,引入 math 模塊
- 在第 2 行,使用 math 模塊中的 fabs 函數(shù)求絕對值
2.3 import … as 語句
import … as 語句為模塊取一個別名,程序可以使用模塊的別名訪問模塊中的接口函數(shù),語法如下:
import 模塊名 as 別名
使用 import … as 語句的示例如下:
>>> import math as m
>>> m.fabs(-123.0)
123.0
- 在第 1 行,引入 math 模塊,設(shè)置模塊的別名為 m
- 在第 2 行,通過模塊的別名 m 訪問模塊
2.4 from … import 語句
from … import 語句從指定模塊中導(dǎo)入指定函數(shù),程序可以通過函數(shù)名直接訪問模塊中定義的函數(shù),語法如下:
from 模塊名 import 函數(shù)名
使用 from … import 語句的示例如下:
>>> from math import fabs
>>> fabs(-123.0)
123.0
- 在第 1 行,從 math 模塊中引入函數(shù) fabs
- 在第 2 行,通過函數(shù)名 fabs 訪問模塊中定義的函數(shù)
2.5 from … import … as 語句
from … import … as 語句從模塊中導(dǎo)入函數(shù),同時為導(dǎo)入的函數(shù)取一個別名,示例如下:
>>> from math import fabs as abs
>>> abs(-123.0)
123.0
- 在第 1 行,從 math 模塊中引入函數(shù) fabs,并為該函數(shù)設(shè)置別名 abs
- 在第 2 行,通過函數(shù)的別名 abs 訪問模塊中定義的函數(shù)
2.6 from … import * 語句
from … import * 語句導(dǎo)入模塊中全部的功能函數(shù),示例如下:
>>> from math import *
>>> fabs(-123.0)
123.0
>>> sqrt(9)
3.0
- 在第 1 行,從 math 模塊中導(dǎo)入全部的功能函數(shù)
- 在第 2 行,使用 math 模塊中定義的函數(shù) fabs 求絕對值
- 在第 4 行,使用 math 模塊中定義的函數(shù) sqrt 求平方根
3. 用戶自定義模塊
3.1 概述
本節(jié)講解了如何自定義模塊和使用模塊,例子程序包括兩個文件:
3.2 定義模塊
編寫程序 utils.py:
PI = 3.14
def max(a, b):
if a > b:
return a
else:
return b
def min(a, b):
if a < b:
return a
else:
return b
- 在第 1 行,定義了模塊的導(dǎo)出變量 PI
- 在第 3 行,定義了模塊的導(dǎo)出函數(shù) max
- 在第 9 行,定義了模塊的導(dǎo)出函數(shù) min
3.3 使用模塊
import utils
print(utils.PI)
print(utils.max(11, 22))
from utils import min
print(min(11, 22))
- 在第 1 行,引入模塊 utils
- 在第 2 行,訪問模塊的導(dǎo)出變量 PI
- 在第 3 行,訪問模塊的導(dǎo)出函數(shù) max
- 在第 5 行,引入模塊 utils 中的導(dǎo)出函數(shù) min
- 在第 6 行,訪問模塊的導(dǎo)出函數(shù) min
運行程序 main.py,輸出結(jié)果如下:
C:\> python main.py
3.14
22
11
- 在第 2 行,輸出 PI 的值
- 在第 3 行,輸出 max(11, 22) 的結(jié)果
- 在第 4 行,輸出 min(11, 22) 的結(jié)果