python基礎14 函式模組5 模組和包

2022-04-10 15:58:00 字數 1842 閱讀 7197

模組與包

一、模組

1、模組是怎麼誕生的。

在電腦程式的開發過程中,隨著程式**越寫越多,在乙個檔案裡**就會越來越長,越來越不容易維護。為了編寫可維護的**,我們把很多函式分組,分別放到  不同的檔案裡,這樣,每個檔案包含的**就相對較少,很多程式語言都採用這種組織**的方式。在python中,乙個.py檔案就稱之為乙個模組(module)。

2、模組的作用。

提高了**的可維護性。其次是編寫**不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他模組,包括python內建的模組和來自第三方的模組。另外,使用模組還可以避免函式名和變數名衝突。相同名字的函式和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。但是也要注意,盡量不要與內建函式名字衝突。

3、模組的分類

1.系統內建模組,即python標準庫

3.應用程式自定義模組,即程式設計人員自己編寫的模組。

4、模組的匯入方式。

1.import 語句

格式:import 模組名

注釋:模組匯入時如果是內建模組會直接被匯入,如果是第三方模組或者是自定義模組則會根據sys.path所給的路徑進行查詢。

乙個模組可以在當前位置import多次,但只有第一次匯入會執行原始檔內的**,原因是:第一次匯入就會將模組包含的內容統統載入到

記憶體了,以後在當前檔案位置的匯入都是指向記憶體中已有的模組

2.from…import 語句

格式:import  模組名  import 變數名

注釋:這個宣告不會把整個modulename模組匯入到當前的命名空間中,只會將它裡面的變數名單個引入到執行這個宣告的模組的全域性符號表。

3.補充.

當import乙個模組時,首先會立刻建立乙個新的命名空間,用來存放該模組中定義的所有變數的名字;然後會在該命名空間內執行foo.py內所有的**,

最後需要知道的是import關鍵字就是定義了乙個名字,只不過此刻我們用import定義的是乙個模組名字foo,該名字就是指向foo.py的命名空間,而foo.的方式

就是從該命名空間裡找名字,可以使用foo.__dict__來檢視這些名字。

注釋:import的兩個過程:  建立新的命名空間  執行被呼叫的模組 (第二次不會被執行)。

二、包1、為什麼會有包。

如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包(package),引入了包以後,只要頂層的包

名不與別人衝突,那所有模組都不會與別人衝突。

2、什麼是包?

包的作用和資料夾的作用相同,只不過與資料夾的區別是新建乙個包會自動產生乙個__init__.py的檔案,該檔案可以寫內容也可以不寫內容。__init__.py的

模組名就死對應的包名,意思就死說當你直接呼叫這個包的時候實際上是呼叫包下面init裡的東西。

3、如何呼叫包內模組

1.如果呼叫模組和被呼叫模組在同乙個包內,倆模組是屬於親兄弟關係那麼這倆模組可直接被呼叫。

2.如果呼叫模組和被呼叫模組在同乙個包內,倆模組是屬於親叔侄關係,那麼需要以from 包名 import  模組名 來呼叫該模組

3.如果呼叫模組和被呼叫模組在同乙個包內,倆模組是屬於表叔侄關係,那麼久需要呼叫os模組吧被呼叫包的路徑加到sys.path中去。

eg:import os,sys  #呼叫模組

base_dir=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#呼叫檔案路徑

print(base_dir)

sys.path.insert(0,base_dir)#新增到搜尋路徑

python函式 模組

一 函式 函式是組織好的,可以重複利用,用來實現一定功能的 段。1 函式的組成部分 1 函式 塊以 def 關鍵字開始,後接函式名稱和括號 然後是冒號 2 任何傳入的引數和自變數必須放在 中 3 函式第一行語句可以寫注釋表明函式的功能 4 段,描述了函式實現的功能,需要縮排 5 return 表示式...

Python函式 模組

模組 定義函式使用def 函式體寫在縮排塊中,函式的返回值用return語句返回,函式執行完畢也沒有return語句時,自動return none 如果想定義乙個什麼事也不做的空函式,可以用pass語句,pass可以用來作為佔位符,如果沒想好怎麼寫,可以先寫乙個pass函式,讓 執行起來 函式 含義...

Python 函式 模組

1.函式的定義 2.函式的呼叫 格式 函式名 函式只能先定義再使用,即函式的呼叫不能出現在函式定義部分的上方。3.除錯工具3.函式注釋 4.函式引數的使用 形參是乙個容器實參是放在容器內的東西。5.函式的返回值 使用return關鍵字可以返回結果。用return返回後,後續的 都不會再執行。模組1....