在現在的計算機程式語言中都會出現這個模組話的概念,當然在我學習的前端技術中也有這個模組,模組話,模組打包等等。
現在我也來總結一下自己學習python中模組的知識點
一、模組:就是乙個包含python**,字尾名是.py的python檔案
優點:這個模組的優點和其他語言都類似:程式太大需要拆分程式**塊這樣可以幫助程式設計師對整個專案或乙個大功能的開發;模組化的**可以重複利用;當作命名中間使用,在這個模組中和另乙個模組中有出現相同命名的變數時,不會相互影響。
如何定義:只要是.py檔案就是乙個模組
建議:1、在模組中最好實現的功能要單一;
2、類,相似功能的組合,或者相似業務的;
3、模組的最後要有乙個測試**;
如何使用模組:
1、import 模組檔名
模組檔名.funcname() --->這是呼叫模組中的方法
模組檔名.classname --->同樣也能類似的例項模組中的宣告的類
2、import 模組名 as 別名(這是在引入模組的時候給模組取乙個別名,為了不使模組名和**中的變數名不重複)
3、from 模組名 import funcname,classname(選擇性匯入模組中的方法或類)
4、from 模組名 import * (匯入模組中的所有資源)
注意點:
在模組中也有需要任何呼叫等操作就可以執行的**行,但是這些**行在匯入模組的時候就會立馬執行,但是當前**中無需執行那些**怎麼辦?
if __name__ == "__main__":
模組的搜尋路徑:
import sys
sys.path ----> 獲取路徑列表
模組的載入順序:
1、搜尋記憶體中已經載入好的模組
2、搜尋python的內建模組
3、搜尋sys.path路徑
二、包:就是將多個模組(python檔案)放在乙個資料夾裡的就是包
就好比多個模組檔案實現了加減乘除等小功能,合在一起生成乙個包,而這個包就實現了整個計算的功能。
自定義包(結構):
|---包
|---|--- __init__.py 包的標誌檔案(必須要有的檔案)
|---|--- 模組1
|---|--- 模組2
|---|--- 子包(子資料夾)
|---|---|--- __init__.py 包的標誌檔案
|---|---|--- 子包模組1
|---|---|--- 子包模組2
包的匯入:
1、import 包名
2、import 包名 as 別名
3、import 包名.模組名
4、import 包名.模組名 as 別名
5、from 包名 import 模組1,模組2,模組3
這種方法不會執行__init__.py中的內容
6、from 包名 import *
這種匯入方法會執行__init__.py中的**
在呼叫這個包中的方法的時候只需要直接funcname() 或 classname() 就好,但是這樣就會有乙個問題,萬一在**中有相同名字的方法名和型別就尷尬了!!!
7、from 包名.模組名 import *
故名思意,就是匯入包的某個模組中的所有
__all__ 的用法:
a. 在使用from package import * 的時候, * 可以匯入的內容
b. __init__.py中如果檔案為空, 或者沒有 __all__, 那麼只可以把__init__中的內容匯入
c. __init__ 如果設定了__all__的值,那麼則按照__all__ 指定的子包或者模組進行載入 如此則不會載入__init__中的內容
d. __all__=['module1', 'module2', 'package1'.........]
在開發環境中經常會所以用其他模組,可以在當前包中直接匯入其他模組中的內容:
import 完整的包或者模組的路徑
Python之模組與包
a 在 python 中,乙個.py檔案就稱之為乙個模組 module 大大提高了 的可維護性 編寫 不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用 b 呼叫函式時用import a getpass模組提供了可移植的密碼輸入 import getpass getpass.getpass b ...
Python之模組與包
模組匯入過程 0.先判斷sys.modules字典中檢視模組是否已經存在,如存在則不做任何操作 1.從sys.path路徑下找到模組 2.建立模組的命名空間 3.把檔案中的名字都放到這個命名空間裡 import sys print sys.path import modue1 import只匯入一次...
python之模組與包
包是一種通過使用模組名來組織python模組命名空間的方式 無論是import形式還是from.import形式,凡是在匯入語句中 而不是在使用時 遇到帶點的,都要第一時間提高警覺 這是關於包才有的匯入語法 包的本質就是乙個包含 init py檔案的目錄 凡是在匯入時帶點的,點的左邊都必須是乙個包 ...