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

來源:互聯網
上載者:User

標籤:相關   設計   檔案中   question   規模   python庫   連結   函數   pycha   

對於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.bmptool = 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

 

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.