Python語言關於包的編寫和編譯
Python語言關於包的編寫和編譯
1 什麼是“模組”?
要想了解Python關於包的編寫和編譯,首先我們就得了解什麼是模組。在百度百科中,“模組”一般是指任何能被裝入記憶體中執行的可執行程式碼和資料的集合,直白地說,就像是一盒主題積木,通過它可以拼湊出某一主題的東西,它與函式不同,一個函式相當於一塊積木,而一個模組中可以包括很多函式,也就是說一個模組中可以由很多的函式共同構成。
2 Python的模組分類
Python提供了強大的模組支援,Python的模組主要可分為三大類:
- 標準模組
標準模組是Python自帶的,在其標準庫中。 - 第三方模組
第三方模組是一些已經由別人弄好的模組,例如數值計算包裡就有很多模組,第三方模組需要下載後才能使用。 - 自定義模組
自定義模組就是使用者根據自己的需要自己編寫定義的模組。
3 如何自定義模組?
自定義模組主要可分為兩個部分:一部分是建立模組,一部分是匯入模組及如何呼叫模組。
3.1 建立模組
在建立模組的時候,我們應當將模組中的相關程式碼編寫在一個單獨的檔案中,在命名時應將檔案命名為“模組名+.py”的形式。在這裡需要注意的是,定義的模組名稱不能與Python自帶的標準庫的名字相同。
在這裡以一個計算bmi指數的模組編寫為例,程式碼如下:
def fun_bmi(person,height,weight):
'''功能:根據身高和體重計算BMI指數
person:姓名
heght:身高,單位:米
weight:體重,單位:千克
'''
print(person+"的身高:"+str(height)+"米 \t 體重:"+str(weight)+"千克")
bmi = weight/(height*height) #用於計算BMI指數,公式為:BMI=體重/身高的平方
print(person+"的BMI指數為:"+str(bmi)) #輸出BMI指數
# 判斷身材是否合理
if bmi< 18.5 :
print("您的體重過輕[email protected] [email protected]~\n")
if bmi>=18.5 and bmi<24.9:
print("正常範圍,注意保持(-_-)\n")
if bmi>=24.9 and bmi<29.9:
print("您的體重過重[email protected][email protected]~\n")
if bmi>=29.9:
print("肥胖^@[email protected]^\n")
儲存該模組為“bmi.py”檔案。
3.2 匯入模組
匯入模組的方式主要有兩種,一種是使用import語句匯入模組,一種是使用from…import語句匯入模組,以下分別以簡單的例子進行介紹。
3.2.1 使用import語句匯入模組
import語句匯入模組的基本語法為:
import modulename [as alias]
#import 模組名 [as 想設定的簡稱]
這裡以剛才建立好的bmi模組的匯入為例:
在剛才建立好的"bmi.py"同級目錄下建立一個名為"main.py"的檔案,將"bmi.py"模組匯入該檔案中,並執行該模組中的fun_bmi()函式,具體的程式碼如下:
import bmi
bmi.fun_bmi("尹一伊",1.75,120)
執行結果如下:
3.2.2 使用from…import語句匯入模組
使用from…import語句匯入模組的基本語法為:
from modulname import member
#from 模組名 import 成員
modulname代表模組名,member用於指定要匯入的變數、函式或者類。
這裡通樣以剛才建立好的bmi模組的匯入為例:
from bmi import fun_bmi
fun_bmi("周大春",1.55,49)
執行結果:
4 Python中包的建立與呼叫
在python裡,包的概念的提出是為了解決使用模組時函式名和變數名重名的問題。包是一個分層次的目錄結構,它的功能是將一組功能相似的模組組織在一起。接下來將介紹如何建立包和使用包。
4.1 建立包
建立包的過程其實就是建立一個資料夾,並且在該資料夾下建立一個名為"–init–.py"的python檔案,這是一個模組檔案,模組名為對應的包名。在"–init–"檔案中,可以不編寫任何的程式碼,也可以根據自己的需要寫程式碼。接下來將介紹如何建立一個包。
第一步:在電腦上建立一個資料夾,我在自己電腦的PythonProject資料夾下建立了一個名為"settings"的資料夾,在其內部又繼續建立了一個同名資料夾。
第二步:在"settings"資料夾下建立"–init–.py"檔案,檔案中不寫任何內容。
到這裡,我們就已經建立好了一個名為"settings"的包,接下來只需在與"–init–.py"同級的目錄下建立需要的模組即可。
以下是我在"settings"包中所建立的模組:
其中,"bmi.py"模組的程式碼如前面所示,"size.py"模組的程式碼如下:
width = 800 #寬度
height = 600 #高度
4.2 如何使用建立好的包
使用包,其實也就是使用包中建立好的模組,這裡主要有三種方法:
- 通過"import+完整包名+模組名"載入指定模組
以這種方式匯入包後,在使用時需使用完整的名稱。
示例:
建立一個"main.py"檔案,具體內容如下:
import settings.size #匯入settings包下的size模組
if __name__=='__main__':
print('寬度',settings.size.width)
print('高度',settings.size.height)
執行結果:
- 通過"from+完整包名+import+模組名"載入指定模組
通過該方式匯入包後,在使用時可不用帶包的字首,具體如下:
from settings import size #匯入settings下的size模組
if __name__=='__main__':
print('寬度',size.width)
print('高度',size.height)
執行結果:
- 通過"from+完整包名+模組名+import+定義名"載入模組
以這種方式載入模組後,直接使用函式、變數即可。
示例:
from settings.size import width,height #匯入settings下的size模組
if __name__=='__main__':
print('寬度',width)
print('高度',height)
執行結果:
至此,python自定義包的編寫和編譯使用介紹完畢。