模塊
模塊是Python 程序架構(gòu)的一個(gè)核心概念
- 模塊好比是 ** 工具包** ,要想使用這個(gè)工具包中的工具,需要使用 **import **這個(gè)關(guān)鍵字進(jìn)行導(dǎo)入這個(gè)工具包
- 每一個(gè)以擴(kuò)展名 **py **結(jié)尾的 Python 源代碼文件都是一個(gè) 模塊
- 在模塊中定義的 全局變量 、函數(shù) 都是模塊能夠提供給外界直接使用的工具
模塊示例
先定義一個(gè)模塊 cal.py ,里面一個(gè)add 方法和 reduce 方法,以及一個(gè)變量name

在hello3.py 文件中調(diào)用剛創(chuàng)建的模塊

打印結(jié)果如下:

**小結(jié)
**
- 可以在一個(gè) Python 文件中定義變量 或者函數(shù),然后在 另外一個(gè)文件中使用 import 導(dǎo)入這個(gè)模塊
- 導(dǎo)入之后,使用 模塊名.變量 / 模塊名.函數(shù) 的方式,進(jìn)行調(diào)用
- **模塊可以讓代碼方便的被 **復(fù)用
**模塊名也是一個(gè)標(biāo)識(shí)符
**
- 標(biāo)示符可以由 字母、下劃線 和數(shù)字組成
- 不能以數(shù)字開頭
- 不能與關(guān)鍵字重名
注意:如果在給 Python 文件起名時(shí),以數(shù)字開頭 是無(wú)法在 Pycharm 中導(dǎo)入這個(gè)模塊的
**Pyc文件( c 指 compiled 編譯過 的意思 )
**
- 瀏覽程序目錄會(huì)發(fā)現(xiàn)一個(gè) pycache 的目錄,目錄下有一個(gè)** cal.cpython-38.pyc 文件, cpython-38** 表示Python解釋器的版本
- 這個(gè)** pyc 文件是由 Python 解釋器將 模塊的源碼** 轉(zhuǎn)換為** 字節(jié)碼**
- Python 這樣保存 字節(jié)碼 是作為一種啟動(dòng) 速度的優(yōu)化


字節(jié)碼
- Python 在解釋源程序時(shí)是分成兩人步驟的
- 首先處理源代碼,編譯生成一個(gè)二進(jìn)制 字節(jié)碼
- 再對(duì)** 字節(jié)碼 進(jìn)行處理,才會(huì)生成 CPU **能夠識(shí)別的 機(jī)器碼
- 有了模塊的字節(jié)碼文件之后,下一次運(yùn)行程序時(shí),如果在上次保存字節(jié)碼之后 沒有修改過源代碼 Python 將會(huì)加載** .pyc**文件并跳過編譯這個(gè)步驟
- 如果又修改了源代碼,下次程序運(yùn)行時(shí),字節(jié)碼將自動(dòng)重新創(chuàng)建
from ... import ...
模塊提供了類似名字空間的限制,允許 Python 從模塊中導(dǎo)入指定的符號(hào)(變量、函數(shù)、類等)到當(dāng)前模塊。導(dǎo)入后,這些符號(hào)就可以直接使用,而不需要前綴模塊名。
示例: 還是在 hello3.py 文件中導(dǎo)入剛剛的cal 模塊


包
- 包 是一個(gè) 包含多個(gè)模塊的 **特殊目錄 **
- 目錄下有一個(gè) 特殊的文件** init .py**
- 包名的 命名方式 和變量名一致,小寫字母+ _
好處 :使用 import 包名,可以一次性導(dǎo)入包 中所有的模塊
**常見的包結(jié)構(gòu)
**
pakageName
-------__init__.py
-------moduleName1.py
-------moduleName2.py
------- ...
注:包路徑下必須存在 init .py 文件
**示例: 建立一個(gè)名為 ani 包,手動(dòng)創(chuàng)建一個(gè)名為 init .py 的空文件, 創(chuàng)建cat 模塊和 dog 模塊,并分別寫一個(gè) eat 函數(shù)
**




然后在 hello3.py 文件中調(diào)用 ** (方式一)**


然后在 hello3.py 文件中調(diào)用 (方式二)****


****注:導(dǎo)包建議采用此種方式,代碼簡(jiǎn)潔,明了。****包中需要導(dǎo)入的模塊越多 或者 名稱越長(zhǎng),此種方法效果越好
-
模塊
+關(guān)注
關(guān)注
7文章
2837瀏覽量
53282 -
python
+關(guān)注
關(guān)注
57文章
4876瀏覽量
90022 -
程序架構(gòu)
+關(guān)注
關(guān)注
0文章
4瀏覽量
1504
發(fā)布評(píng)論請(qǐng)先 登錄
請(qǐng)問python-樹莓派如何通過按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)?
什么是python包、模塊和庫(kù)?
python常規(guī)包與命名空間包
python-速成指南
在Anaconda中安裝python包seaborn
python包、模塊和庫(kù)是什么
詳解python常規(guī)包與命名空間包
Python-模塊、包、異常
python包模塊相對(duì)導(dǎo)入from和import介紹1
python包模塊相對(duì)導(dǎo)入from和import介紹2
簡(jiǎn)述python包模塊import和from及all
Python關(guān)于包的概念和結(jié)構(gòu)
Python SDK包的使用
Python-模塊與包
評(píng)論