模塊
模塊是Python 程序架構(gòu)的一個核心概念
- 模塊好比是 ** 工具包** ,要想使用這個工具包中的工具,需要使用 **import **這個關(guān)鍵字進行導(dǎo)入這個工具包
- 每一個以擴展名 **py **結(jié)尾的 Python 源代碼文件都是一個 模塊
- 在模塊中定義的 全局變量 、函數(shù) 都是模塊能夠提供給外界直接使用的工具
模塊示例
先定義一個模塊 cal.py ,里面一個add 方法和 reduce 方法,以及一個變量name
在hello3.py 文件中調(diào)用剛創(chuàng)建的模塊
打印結(jié)果如下:
**小結(jié)
**
- 可以在一個 Python 文件中定義變量 或者函數(shù),然后在 另外一個文件中使用 import 導(dǎo)入這個模塊
- 導(dǎo)入之后,使用 模塊名.變量 / 模塊名.函數(shù) 的方式,進行調(diào)用
- **模塊可以讓代碼方便的被 **復(fù)用
**模塊名也是一個標(biāo)識符
**
- 標(biāo)示符可以由 字母、下劃線 和數(shù)字組成
- 不能以數(shù)字開頭
- 不能與關(guān)鍵字重名
注意:如果在給 Python 文件起名時,以數(shù)字開頭 是無法在 Pycharm 中導(dǎo)入這個模塊的
**Pyc文件( c 指 compiled 編譯過 的意思 )
**
- 瀏覽程序目錄會發(fā)現(xiàn)一個 pycache 的目錄,目錄下有一個** cal.cpython-38.pyc 文件, cpython-38** 表示Python解釋器的版本
- 這個** pyc 文件是由 Python 解釋器將 模塊的源碼** 轉(zhuǎn)換為** 字節(jié)碼**
- Python 這樣保存 字節(jié)碼 是作為一種啟動 速度的優(yōu)化
字節(jié)碼
- Python 在解釋源程序時是分成兩人步驟的
- 首先處理源代碼,編譯生成一個二進制 字節(jié)碼
- 再對** 字節(jié)碼 進行處理,才會生成 CPU **能夠識別的 機器碼
- 有了模塊的字節(jié)碼文件之后,下一次運行程序時,如果在上次保存字節(jié)碼之后 沒有修改過源代碼 Python 將會加載** .pyc**文件并跳過編譯這個步驟
- 如果又修改了源代碼,下次程序運行時,字節(jié)碼將自動重新創(chuàng)建
from ... import ...
模塊提供了類似名字空間的限制,允許 Python 從模塊中導(dǎo)入指定的符號(變量、函數(shù)、類等)到當(dāng)前模塊。導(dǎo)入后,這些符號就可以直接使用,而不需要前綴模塊名。
示例: 還是在 hello3.py 文件中導(dǎo)入剛剛的cal 模塊
包
- 包 是一個 包含多個模塊的 **特殊目錄 **
- 目錄下有一個 特殊的文件** init .py**
- 包名的 命名方式 和變量名一致,小寫字母+ _
好處 :使用 import 包名,可以一次性導(dǎo)入包 中所有的模塊
**常見的包結(jié)構(gòu)
**
pakageName
-------__init__.py
-------moduleName1.py
-------moduleName2.py
------- ...
注:包路徑下必須存在 init .py 文件
**示例: 建立一個名為 ani 包,手動創(chuàng)建一個名為 init .py 的空文件, 創(chuàng)建cat 模塊和 dog 模塊,并分別寫一個 eat 函數(shù)
**
然后在 hello3.py 文件中調(diào)用 ** (方式一)**
然后在 hello3.py 文件中調(diào)用 (方式二)****
****注:導(dǎo)包建議采用此種方式,代碼簡潔,明了。****包中需要導(dǎo)入的模塊越多 或者 名稱越長,此種方法效果越好
-
模塊
+關(guān)注
關(guān)注
7文章
2769瀏覽量
48828 -
python
+關(guān)注
關(guān)注
56文章
4821瀏覽量
85749 -
程序架構(gòu)
+關(guān)注
關(guān)注
0文章
4瀏覽量
1453
發(fā)布評論請先 登錄
相關(guān)推薦
請問python-樹莓派如何通過按鍵控制步進電機正反轉(zhuǎn)?
什么是python包、模塊和庫?
python常規(guī)包與命名空間包
python-速成指南
在Anaconda中安裝python包seaborn

python包、模塊和庫是什么
詳解python常規(guī)包與命名空間包
Python-模塊、包、異常

python包模塊相對導(dǎo)入from和import介紹1
python包模塊相對導(dǎo)入from和import介紹2
簡述python包模塊import和from及all
Python關(guān)于包的概念和結(jié)構(gòu)

Python SDK包的使用

評論