⚫ 模組對應於python源**檔案;
⚫ 多個功能相似的模組可以組織成乙個包。
python中的模組包括系統模組、第三方模組和使用者自定義模組。它們實質上是以.py為副檔名的python檔案
通過匯入模組,可以使用該模組中的變數、函式和類等。
• 如果程式中包含多個可以復用的函式或類,則通常把相關的函式和類分組包含在單獨的模組(module)中。這些提供計算功能的模組稱之為模組(或函式模組),匯入並使用這些模組的程式,則稱之為客戶端程式。
• 把計算任務分離成不同模組的程式設計方法,稱之為模組化程式設計(modularprogramming)。使用模組,可以將計算任務分解為大小合理的子任務,並實現**的重用功能。
• 模組化程式設計的基本原則是先設計api(即模組提供的函式或類的功能描述),然後實現api(即編寫程式,實現模組函式或類),最後在客戶端中匯入並使用這些函式或類;
• 通過內建函式help(),可以檢視python模組的api;
import 模組名
help(模組名)
例:import math
help(math)
api定義客戶端和實現之間的契約。api是乙個明確的規範,規定「實現的具體功能是什麼
api通常由兩部分組成:可用函式的簽名的精確規範,以及描述函式作用的非正式自然語言描述。api一般使用**的形式,描述模組中的變數、函式和類
當編寫乙個新模組時,建議先設計api,然後實現模組
• (1)先設計api,再實現模組
• (2)控制模組的規模,只為客戶端提供需要的函式。實現包含大量函式的模組會導致模組的複雜性。例如,python的math模組中就不包含正割函式、餘割函式和餘切函式,因為這些函式很容易通過函式math.sin()、math.cos()和math.tan()的計算而得
• (3)在模組中編寫測試**,並消除全域性**
• (4)使用私有函式實現不被外部客戶端呼叫的模組函式
• (5)通過文件提供模組幫助資訊
• 「實現」是指實現用於重用的函式或類的**,模組的實現就是若干實現函式或類的**的集合,儲存在乙個字尾為.py的檔案中;
• 模組的實現必須遵循api規約,可以採用不同演算法實現api,這為模組的改進和版本公升級提供了無縫對接,只需要使用遵循api的新的實現,所有客戶端程式無須修改即可以正常執行。
• 客戶端遵循api提供的呼叫介面,匯入和呼叫模組中實現的函式功能;
• api允許任何客戶端直接使用模組,而無需檢測模組中定義的**,例如可以直接使用模組math和random等。
• 可以編寫大規模的系統程式
• 控制程式的複雜度
• 實現**重用
• 增強可維護性
方式一方式二
模組的匯入
import 模組名
from 模組名 import 函式名或:from 模組名 import *
匯入示例
import combinatorial
from combinatorial import fac,comb或者:from combinatorial import *
函式呼叫
模組名.函式名
函式名函式呼叫示例
combinatorial.fac(10)
fac(10)
(1)import 模組1,模組2…
(2)from 模組名 import 方法/類/物件
(3)from 模組名 import * (『*』表示可以用所有方法)
• python模組對應於包含python**的原始檔(其擴充套件名為.py),在檔案中可以定義變數、函式和類;
• 在模組中,除了可以定義變數、函式和類之外,還可以包含一般的語句,稱之為主塊(全域性語句)。當執行該模組,或匯入該模組時,主塊語句將依次執行。
python檔案中的每個檔案都可以做為乙個模組存在,檔名即模組名。
import os
os.getcwd() #檢視當前路徑
os.chdir(' ') #修改當前路徑
import sys
sys.path #檢視搜尋路徑
在.py檔案中寫好函式,import後可以用其中的函式
import 模組名
模組名.函式名()
或:from 模組名 import *
函式名()
• 匯入模組時,直譯器按下列目錄搜尋路徑和檔案搜尋順序查詢並匯入檔案。目錄搜尋路徑為:
• (1)當前目錄。啟動互動式python的目錄,或python主程式位於的目錄。
• (2)作業系統環境變數pythonpath中指定的目錄。
• (3)python標準庫目錄
"——all——" 和"——name——"
——all——屬性
——all—— = 控制模組裡那些功能可以用*呼叫
——name——屬性
通過特殊變數__name__可以獲取模組的名稱
• 每個模組都有乙個名稱,通過特殊變數__name__可以獲取模組的名稱
• 特別地,當乙個模組被使用者單獨執行時,其__name__的值為』main』。故可以把模組源**檔案的測試**寫在相應的測試判斷中,以保證只有單獨執行時,才會執行測試**
➢包是python引入的分層次的檔案目錄結構,它定義了乙個由模組及子包,和子包下的子包等組成的 python 的應用環境。引入了包以後,只要頂層的包名不與別人衝突,那所有模組都不會與別人衝突。
➢每乙個python的包目錄下面都會有名為__init__.py的特殊檔案,該檔案可以為空檔案,但是必須存在,它表明這個目錄不是普通的目錄結構,而是乙個包,裡面包含模組。
• 模組中定義的成員,包括變數、函式和類,可以通過內建的函式dir()查詢,也可以通過help()函式查詢其幫助資訊
• 【例】列舉模組成員示例
python 模組和包 python模組和包
一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...
Python 模組和包
包 模組的一種組織結構 乙個包由多個模組構成,即包含多個.py檔案 1匯入包的幾種形式 1 import module 將module模組中屬性列表的所有屬性匯入執行環境,使用時需要新增模組名稱,例如 module.func 2 from module import attrname,fucnnam...
python 模組和包
1.內建模組 本身就帶有的庫,就叫做python的內建的庫。模組 庫 一些常見的內建模組 os 和作業系統相關 os.path sys 和系統相關 sys.path re 正規表示式 2.第三方模組 非python本身自帶的庫,就是所謂的第三方的庫 3.模組的匯入 import as yy from...