Python入門之PyCharm中目錄directory與包package的區別


對於Python而言,有一點是要認識明確的,python作為一個相對而言輕量級的,易用的腳本語言(當然其功能並不僅限於此,在此只是討論該特點),隨着程序的增長,可能想要把它分成幾個文件,以便邏輯更加清晰,更好維護,亦或想要在幾個程序中均使用某個函數,而不必將其復制粘貼到所有程序中。

為了支持這一點,Python有一種方法將定義函數放在一個文件中,並在腳本中使用它們,這樣的文件叫做模塊,一個模塊中的定義可以被導入到其他模塊,或者主模塊中。

簡單來說在python中模塊就是指一個py文件,如果我們將所有相關的代碼都放在一個py文件中,則該py文件既是程序由是模塊,但是程序和模塊的設計目的是不同的,程序的目的是為了運行,而模塊的目的是為了其他程序進行引用。

    • Dictionary

      Dictionary在pycharm中就是一個文件夾,放置資源文件,對應於在進行JavaWeb開發時用於放置css/js文件的目錄,或者說在進行物體識別時,用來存儲背景圖像的文件夾。該文件夾其中並不包含_ _ init.py_ _文件

    • Python package

      對於Python package 文件夾而言,與Dictionary不同之處在於其會自動創建_ _ init__.py文件。 
      簡單的說,python package就是一個目錄,其中包括一組模塊和一個_ _ init__.py文件。

      Image/
      _init _.py
      jpg.py
      tiff.py
      bmp.py

只要image目錄是我們程序目錄的子目錄,我們就可以導入image目錄下的任意模塊來為我們所用,使用時可如下:

import Image.bmp
tool = Image.bmp.read('a.bmp')

_ _ init_ _.py

該文件與Python的import機制有關,這關乎到你的哪些.py文件是對外可訪問的。有些時候,如果一個包下有很多模塊,在調用方import如此多模塊是很費事,且不優雅的,此時可以通過修改_ _ init_ _.py來完成該任務。 
在_ _ init_ .py中定義特殊變量_ all_ ,將要包含的模塊復制給該變量,例如在Image/ _ init_ .py中定義 all _=[‘tiff’,’bmp’,’jpg’],這里的all 對應的就是 from …import * 中*代指的模塊,此時在引用方使用如下語句:

from image import *
tool = tiff.read('a.tiff')

 

補充:

python模塊是:
自我包含並且有組織的代碼片段為模塊。
表現形式為:寫的代碼保存為文件。這個文件就是一個模塊。sample.py 其中文件名smaple為模塊名字。

python包是:
包是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執行環境。

通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。

python庫是參考其它編程語言的說法,就是指python中的完成一定功能的代碼集合,供用戶使用的代碼組合。在python中是包和模塊的形式。

一般按照API的慣例來設計庫。
應用程序接口英語Application Programming Interface,簡稱:API),又稱為應用編程接口,就是軟件系統不同組成部分銜接的約定。由於近年來軟件的規模日益龐大,常常需要把復雜的系統划分成小的組成部分,編程接口的設計十分重要。程序設計的實踐中,編程接口的設計首先要使軟件系統的職責得到合理划分。良好的接口設計可以降低系統各部分的相互依賴,提高組成單元的內聚性,降低組成單元間的耦合程度,從而提高系統的維護性和擴展性。

 

 

參考:https://www.cnblogs.com/LancyWu/p/7283889.html

作者:黃哥
鏈接:https://www.zhihu.com/question/30082392/answer/46698211

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM