python中的模塊、庫、包有什麼區別?
01-28
scrapy、flask、Django、numpy、scipy、NLTK、jieba分別屬於哪一類?
python模塊是:
自我包含並且有組織的代碼片段為模塊。表現形式為:寫的代碼保存為文件。這個文件就是一個模塊。sample.py 其中文件名smaple為模塊名字。
python包是:
包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境。通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。
python庫是參考其它編程語言的說法,就是指python中的完成一定功能的代碼集合,供用戶使用的代碼組合。在python中是包和模塊的形式。
一般按照API的慣例來設計庫。
應用程序介面(英語:Application Programming Interface,簡稱:API),又稱為應用編程介面,就是軟體系統不同組成部分銜接的約定。由於近年來軟體的規模日益龐大,常常需要把複雜的系統劃分成小的組成部分,編程介面的設計十分重要。程序設計的實踐中,編程介面的設計首先要使軟體系統的職責得到合理劃分。良好的介面設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。Django,flask這些是框架。框架(framework)是一個基本概念上的結構,用於去解決或者處理複雜的問題。這個廣泛的定義使用的十分流行,尤其在軟體概念。框架也能用於機械結構。說中文是沒法讓人理解的,我猜你指的是 module、lib 和 package
module:一個 .py 文件就是個 module
lib:抽象概念,和另外兩個不是一類,只要你喜歡,什麼都是 lib,就算只有個 hello world
package:就是個帶 __init__.py 的文件夾,並不在乎裡面有什麼,不過一般來講會包含一些 packages/modules
scrapy、flask、Django、numpy、scipy、NLTK、jieba 在你的語境下,一般都被認為是 lib,因為關注點不是他們的代碼是怎麼組織的。簡單講,Package是由很多module組成,來實現某種功能,modules由函數和類組成。庫是抽象概念,也可以是各種模塊組成。
推薦閱讀:
※原來你還會python啊?
※C++實現神經網路之貳—前向傳播和反向傳播
※為什麼說 Python 是數據科學的發動機(一)發展歷程(附視頻中字)
※通俗 Python 設計模式——享元模式
※為什麼Python類成員的調用和聲明必須有"this"?