python 入門筆記 (模組)

來源:互聯網
上載者:User

標籤:

一、模組基礎

1、模組

自我包含,且有組織的程式碼片段就是模組

模組是Pyhon最進階別的程式組織單元,它將程式碼和資料封裝起來以便重用。實際的角度,模組往往對應Python程式檔案。
每個檔案都是一個模組,並且模組匯入其他模組之後就可以使用匯入模組定義的變數名。模組可以由兩個語句和一個重要的內建函數進行處理。
import: 使用戶端(匯入者)以一個整體擷取一個模組。
from:容許用戶端從一個模組檔案中擷取特定的變數名。
reload:在不中止Python程式的情況下,提供了一個重新載入模組檔案代碼的方法。

參考:http://ipseek.blog.51cto.com/1041109/795782

2、名稱空間

一個名稱空間就是從名稱到對象的關係隱射集合。

每一個模組都定義的自己唯一的名稱空間,如:

import s1,s2#s1.py,s2.pys1.foo()s2.bar()s1.bar()    #由於每個模組都有唯一的名稱空間,即使屬性相同也不會發生衝突

向名稱空間添加名稱的操作過程涉及綁定標識符到指定對象的操作(以及給對象的引用計數加1)。

3、搜尋路徑和路徑搜尋

模組的匯入需要叫做“路徑搜尋”的過程。

搜尋路徑:尋找一組目錄

路徑搜尋:尋找某個檔案的操作

ImportError: No module named myModule

這種錯誤就是說:模組不在搜尋路徑裡,從而導致路徑搜尋失敗!

匯入模組時,不帶模組的尾碼名,比如.py
Python搜尋模組的路徑:
1)、程式的主目錄
2)、PTYHONPATH目錄(如果已經進行了設定)
3)、標準串連庫目錄(一般在/usr/local/lib/python2.X/)
4)、任何的.pth檔案的內容(如果存在的話).新功能,允許使用者把有效果的目錄添加到模組搜尋路徑中去
.pth尾碼的文字檔中一行一行的地列出目錄。
這四個組建組合起來就變成了sys.path了,

>>> import sys>>> sys.path匯入時,Python會自動由左到右搜尋這個列表中每個目錄。

 

二、模組匯入

1、import語句

推薦:

import放在程式前面,且按照Python標準庫模組、Python第三方模組、自訂模組的順序從上到下排開。

2、from-import語句

可以匯入模組中指定屬性:from module import name1[,nam2[,...nameN]]

注意:

(1)、匯入可使用\進行換行,

如:from module import nam1,name2,\
name3,name4....

(2)、不推薦from module import *

(3)、使用as更換名稱:

from module import name1 as name2

3、模組匯入的特徵

(1)、載入時執行模組,也就是匯入模組的頂層代碼將會被執行,通常包括該模組內全域變數類和函數的聲明。我們儘可能多的把代碼封裝到函數中,這是良好的模組編程習慣。

(2)、一個模組可被匯入(import)多次,但是只載入(load)一次.

4、模組內建函數

(1)、__import__():匯入模組的函數

import語句實際上調用__import__()函數

如果我們有一個testa.py檔案,我們可以用module=__import__(‘testa‘)來匯入它。這樣可以用module.屬性來使用testa.py中的屬性

其他見書

三、包

 1、包的概念

包是一個有層次的檔案目錄結構,由模組和子包組成。

2、解析包機制:

每一個.py檔案稱為一個module,module之間可以互相匯入

module可以定義在包裡面.Python定義包的方式稍微有點古怪,假設我們有一個parent檔案夾,該檔案夾有一個child子檔案夾.child中有一個module a.py . 如何讓Python知道這個檔案階層?很簡單,每個目錄都放一個名為_init

_.py 的檔案.該檔案內容可以為空白.這個階層同上:

參考:http://huangliangfeixu.blog.163.com/blog/static/18974706220112741040442/

 

3、python中__init__.py檔案的作用

 

python的每個模組的包中,都有一個__init__.py檔案,有了這個檔案,我們才能匯入這個目錄下的module。
那麼,__init__.py還有什麼別的功能呢?
其實,__init__.py裡面還是可以有內容的,我們在匯入一個包時,實際上匯入了它的__init__.py檔案。

點擊繼續閱讀:

 

4、匯入

 

參考上面的圖片

 

import web.web_catchimport web.child_web.demofrom web.child_web import demo


python 入門筆記 (模組)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.