PyCharm中目录directory与包package的区别
對于Python而言,有一點(diǎn)是要認(rèn)識明確的,python作為一個(gè)相對而言輕量級的,易用的腳本語言(當(dāng)然其功能并不僅限于此,在此只是討論該特點(diǎn)),隨著程序的增長,可能想要把它分成幾個(gè)文件,以便邏輯更加清晰,更好維護(hù),亦或想要在幾個(gè)程序中均使用某個(gè)函數(shù),而不必將其復(fù)制粘貼到所有程序中。
為了支持這一點(diǎn),Python有一種方法將定義函數(shù)放在一個(gè)文件中,并在腳本中使用它們,這樣的文件叫做模塊,一個(gè)模塊中的定義可以被導(dǎo)入到其他模塊,或者主模塊中。
簡單來說在python中模塊就是指一個(gè)py文件,如果我們將所有相關(guān)的代碼都放在一個(gè)py文件中,則該py文件既是程序由是模塊,但是程序和模塊的設(shè)計(jì)目的是不同的,程序的目的是為了運(yùn)行,而模塊的目的是為了其他程序進(jìn)行引用。
-
-
-
Dictionary
Dictionary在pycharm中就是一個(gè)文件夾,放置資源文件,對應(yīng)于在進(jìn)行JavaWeb開發(fā)時(shí)用于放置css/js文件的目錄,或者說在進(jìn)行物體識別時(shí),用來存儲背景圖像的文件夾。該文件夾其中并不包含_ _ init.py_ _文件
-
-
-
Python package
對于Python package 文件夾而言,與Dictionary不同之處在于其會自動(dòng)創(chuàng)建_ _ init__.py文件。 簡單的說,python package就是一個(gè)目錄,其中包括一組模塊和一個(gè)_ _ init__.py文件。
-
Image/
_init _.py
jpg.py
tiff.py
bmp.py
-
-
只要image目錄是我們程序目錄的子目錄,我們就可以導(dǎo)入image目錄下的任意模塊來為我們所用,使用時(shí)可如下:
import Image.bmp tool = Image.bmp.read('a.bmp')_ _ init_ _.py
該文件與Python的import機(jī)制有關(guān),這關(guān)乎到你的哪些.py文件是對外可訪問的。有些時(shí)候,如果一個(gè)包下有很多模塊,在調(diào)用方import如此多模塊是很費(fèi)事,且不優(yōu)雅的,此時(shí)可以通過修改_ _ init_ .py來完成該任務(wù)。
在 _ init_ .py中定義特殊變量_ all_ ,將要包含的模塊復(fù)制給該變量,例如在Image/ _ init_ .py中定義 all _=[‘tiff’,’bmp’,’jpg’],這里的all 對應(yīng)的就是 from …import * 中*代指的模塊,此時(shí)在引用方使用如下語句:
補(bǔ)充:
python模塊是:
自我包含并且有組織的代碼片段為模塊。
表現(xiàn)形式為:寫的代碼保存為文件。這個(gè)文件就是一個(gè)模塊。sample.py 其中文件名smaple為模塊名字。
python包是:
包是一個(gè)有層次的文件目錄結(jié)構(gòu),它定義了由n個(gè)模塊或n個(gè)子包組成的python應(yīng)用程序執(zhí)行環(huán)境。
通俗一點(diǎn):包是一個(gè)包含__init__.py 文件的目錄,該目錄下一定得有這個(gè)__init__.py文件和其它模塊或子包。
python庫是參考其它編程語言的說法,就是指python中的完成一定功能的代碼集合,供用戶使用的代碼組合。在python中是包和模塊的形式。
一般按照API的慣例來設(shè)計(jì)庫。
應(yīng)用程序接口(英語:Application Programming Interface,簡稱:API),又稱為應(yīng)用編程接口,就是軟件系統(tǒng)不同組成部分銜接的約定。由於近年來軟件的規(guī)模日益龐大,常常需要把復(fù)雜的系統(tǒng)劃分成小的組成部分,編程接口的設(shè)計(jì)十分重要。程序設(shè)計(jì)的實(shí)踐中,編程接口的設(shè)計(jì)首先要使軟件系統(tǒng)的職責(zé)得到合理劃分。良好的接口設(shè)計(jì)可以降低系統(tǒng)各部分的相互依賴,提高組成單元的內(nèi)聚性,降低組成單元間的耦合程度,從而提高系統(tǒng)的維護(hù)性和擴(kuò)展性。
總結(jié)
以上是生活随笔為你收集整理的PyCharm中目录directory与包package的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中模块(Module)和包(
- 下一篇: 利用python同步windows和li