模塊的問題解決了代碼過長不便維護的問題,但是如果不同的人編寫的模塊名相同怎么辦?為了變量模塊名沖突,python又引入了用目錄來組織模塊的方法,稱為包。
例如:
為了避免`fibo.py`與其他模塊沖突,我們可以選擇一個頂層包名,比如`my_fibo`。
創建名為`my_fibo`的文件夾,將模塊`fibo.py`放入該文件夾下。
然后通過`import 包名.模塊名`的方式導入,只要頂層包名不起沖突,模塊就不會起沖突。
現在`fibo`模塊的引入就是這樣的:
```python
>>> import my_fibo.fibo
```
但是這樣導入引用時要用全名
```python
>>> my_fibo.fibo.fib(10)
0 1 1 2 3 5 8
```
也可以結合`from`以`from 包名 import 模塊名`的形式來引用
```python
>>> from my_fibo import fibo
```
這樣就可以以模塊`fibo`來調用其中的函數
```python
>>> fibo.fib(10)
0 1 1 2 3 5 8
```
也可以以`from 包名.模塊名 import 名稱`的形式直接導入所需函數和變量
```python
>>> from my_fibo.fibo import fib
```
這樣可以直接調用`fib`函數
```python
>>> fibo(10)
0 1 1 2 3 5 8
```
注意:每一個包目錄下一般都有一個`__init__.py`文件(python2中是必須的),這個文件是包的入口文件,導入包時,會自動執行這個文件中的代碼。
- 第1章 編程基礎
- 零基礎能學Python嗎?
- 編程語言是什么
- 編譯型與解釋型編程語言的區別
- python是什么?
- 學python能干什么?
- 第2章 python開發環境搭建
- windows下安裝python
- cmd命令行工具
- 環境變量如何設置?
- 如何運行python程序?
- 學習神器Jupyter lab
- 第3章 基本數據類型
- 基本數據類型概述
- 變量的定義和使用
- 整數類型
- 浮點數類型
- 算術運算符
- 賦值運算符
- 字符串類型
- 字符串常用方法
- 字符串格式化
- 列表類型
- 元組類型
- 可變與不可變類型
- 深淺拷貝
- 集合類型
- 字典類型
- 布爾型
- NoneType
- 第4章 程序流程控制
- 程序結構
- if分支語句
- while條件循環
- for循環
- 循環控制關鍵字
- 異常處理
- 第5章函數與代碼復用
- 函數的定義和調用
- 函數的參數
- 函數的返回值
- lambda函數
- 變量作用域
- python內建函數
- 第6章 面向對象
- 類和對象
- 屬性
- 方法
- 繼承
- super()函數
- 多態
- 私有化
- 自省與反射機制
- 第7章 模塊和包
- 模塊
- 包
- 第三方庫
- 第8章 文件IO操作
- 文件概述
- 字符編碼
- 字節類型
- python讀取文件
- python寫文件
- 文件指針