Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對象和類

Python 日期和時間

Python 高級知識

Python 參考手冊

Python 包(Package)

在本文中,您將學(xué)習(xí)使用Python包將代碼庫分為干凈,高效的模塊。 另外,您還將學(xué)習(xí)如何在Python程序中導(dǎo)入和使用自己的或第三方軟件包。

什么是包(Package)?

我們通常不會把所有的文件都存儲在同一個地方。我們使用一個組織良好的目錄層次結(jié)構(gòu),以方便訪問。

相似的文件保存在同一目錄中,例如,我們可以將所有歌曲保留在“music”目錄中。與此類似,Python具有用于目錄的軟件包和用于文件的模塊。

隨著我們的應(yīng)用程序規(guī)模越來越大,帶有許多模塊,我們將相似的模塊放在一個包中,而將不同的模塊放在不同的包中。這使項目(程序)易于管理且概念清晰。

類似地,由于目錄可以包含子目錄和文件,因此Python程序包可以具有子程序包和模塊。

目錄必須包含一個名為 __init__.py 的文件,Python才能將其視為一個包。該文件可以保留為空,但是我們通常將該程序包的初始化代碼放入此文件中。

這是一個實例。假設(shè)我們正在開發(fā)一個游戲,則可能的包和模塊組織如下圖所示。

Python編程中的軟件包模塊結(jié)構(gòu)

從包中導(dǎo)入模塊

我們可以使用點(.)運算符從包中導(dǎo)入模塊。

例如,如果要在上面的示例中導(dǎo)入 start 模塊,請按以下步驟完成。

import Game.Level.start

現(xiàn)在,如果該模塊包含名為的select_difficulty()函數(shù),我們必須使用全名來引用它。

Game.Level.start.select_difficulty(2)

如果這個構(gòu)造看起來很冗長,我們可以按以下方式導(dǎo)入不帶包前綴的模塊。

from Game.Level import start

現(xiàn)在,我們可以簡單地如下調(diào)用該函數(shù)。

start.select_difficulty(2)

僅將所需的函數(shù)(或類 或變量)從包中的模塊中導(dǎo)入的另一種方法如下。

from Game.Level.start import select_difficulty

現(xiàn)在我們可以直接調(diào)用此函數(shù)。

select_difficulty(2)

盡管比較簡單,但不建議使用此方法。使用完整的命名空間可避免混淆,并防止兩個相同的標(biāo)識符名稱沖突。

在導(dǎo)入包時,Python查看sys.path中定義的目錄列表,類似于模塊搜索路徑。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清