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