天天看點

python-子產品入門

一、子產品介紹

子產品:子產品就是一系列功能的集合體

子產品有三種來源: 1.内置子產品

         2.第三方的子產品

         3.自定義子產品

子產品的格式: 1使用python編寫的.py檔案     

       2.已被編譯為共享庫或DLL的C或C++擴充

       3.把一系列子產品組織到一起的檔案夾(注:檔案夾下有一個__init__.py檔案,該檔案稱之為包)       

       4.使用C編寫并連結到python解釋器的内置子產品

為何要用子產品?

  1.使用内置的或者第三方子產品的好處是:拿來主義,可以極大提升開發效率

  2.使用自定義子產品的好處是:可以減少代碼備援(抽取我們自己程式中要公用的一些功能定義成子產品,然後程式的各部分元件都去子產品中調用共享功能)                 

注: 一定要區分開誰是執行檔案,誰是被導入子產品       

二、import導入子產品

首次導入子產品:

  1.會産生一個子產品的名稱空間

  2.執行子產品檔案,将執行過程中産生的名字都放到子產品的名稱空間中

  3.在目前執行檔案的名稱空間中拿到一個子產品名,該名字指向子產品的名稱空間

後面的導入,都是直接引用第一次導入的成果,不會重新執行檔案

spam.money   在執行檔案中通路子產品名稱空間中名字的文法:  子產品名.名字(注:子產品名應該全部為小寫)

指名道姓地跟spam要money  不會與目前執行檔案中的名字沖突

為子產品起别名  import xxx as x

總結import導入子產品:

  優點:指名道姓地向某一個名稱空間要名字,不會與目前名稱空間中的名字沖突

  缺點:但凡應用子產品中的名字都需要字首,不夠簡潔

三、from...import...導入子產品

  3.在目前執行檔案的名稱空間中拿到一個名字,該名字就是執行子產品中對應的名字

總結from...import...

  優點:使用時,無需再加字首,更簡潔

  缺點:容易與目前名稱空間中的名字沖突

補充:

  from xxx import * 導入全部   *代表從被導入子產品中拿到所有名字(不推薦使用)

  在導入子產品時,如果未找到__all__中的成員,抛出attributeError

# __all__ = ['money','read1']      

焚膏油以繼晷,恒兀兀以窮年。