close

模組化的設計可以在撰寫大型程式感受到他的好處

怎麼說呢? 想想看,當你的程式碼來到了幾百甚至千行以上

維護上可想而知的困難,尤其是在debug或是想修改部分程式碼的時候...(要找很久之類...

所以這時候就可以用模組(Module)來提升程式碼的維護

但...隨著模組數量增量,這時又需要請出套件(Package)來好好整理這些模組(Module)

使用這麼多東西除了提高程式碼的維護及易讀性外,也可以大大提高程式碼的重複使用率(Reusability)

也就是類似的程式碼不用一直重寫,只要呼叫寫好的程式碼來應用就好

(模組的概念好比車子,假設今天輪胎壞掉,我更換輪胎就好,不需要再新買一台車

那我們就開始來介紹 模組(Module) 及 套件(Package) 吧!

目錄:

1. 模組(Module)的介紹

2. 模組(Module)的用法

3. 模組匯入(import)的語法

4. 套件(Package)的介紹

5. 套件(Package)的用法

6. 套件匯入(import)的語法


1. 模組(Module)的介紹

還記得上一話(第十六話-函式(function))的介紹嗎?

我們提到了當一段程式碼需要重複使用可以用方法(function)

(咦?這個跟模組有啥關係???

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

當眾多的方法(function)穿插在程式碼中,易讀性是非常低的

一下這裡有方法,一下又呼叫了甚麼

這時我們把相似的方法(function)集合起來合併成模組(Module)就會更好管理

這就是模組(Module)的用途

2. 模組(Module)的用法

首先,我們在左側的src資料夾底下新增一個模組(Module)

路徑: src > 滑鼠右鍵 > New > PyDev Module > 跳出一個對話框

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

在Name的欄位中輸入自己定義的名字,這也是模組的名字

輸入完後點選Finish就建立好模組了

假設我以一個專門印出字串為例子,所以我命名為print_info(只是舉例)

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

這時可以在左側發現,我們多了一個.py的檔案,print_info.py就是我們建立的模組

點選兩下,主畫面就會開啟print_info的頁面,我們就可以撰寫我們的模組內容了

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

假設在這個模組下撰寫了這三個方法,印出姓名、年齡、sayhi

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

回到我們的主程式first_py

在主程式的開頭進行匯入(import)的動作,讓編譯器知道你要匯入甚麼模組

3. 模組匯入(import)的語法

匯入的寫法是 : from 模組名稱 import 模組內的方法 as 自己可以再命名

from 就是我們要使用哪個模組

import 為匯入模組中哪個元件

as 為有時候元件名稱太長等因素,在當前匯入後可以用自己方便記的名字重新命名,但不影響原本的元件名稱,這樣後續呼叫時更容易,亦可省略

如下圖,我將元件name用pna來表示,使用時只要打pna("jason")即可,是不是方便許多

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

如果要將模組下的所有元件都匯入,可以用「*」來達成

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

或是...用更簡單的寫法,只是呼叫時的語法不太一樣

例如 : 「模組名稱 . 元件名稱」

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

若覺得模組名稱太長,也可以使用前面提到的as 像這樣

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

4. 套件(Package)的介紹

假設今天我們撰寫的模組越來越多,總希望能將這麼模組分門別類的整理

這時候就可以使用套件

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

5. 套件(Package)的用法

眼尖的各位,在上面練習新增模組時,會發現下面一個就是新增套件(package)了吧!

路徑 : srv > 點擊滑鼠右鍵 > New > PyDev Package

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

輸入套件(package)的名稱,例如我想把cal開頭的模組放到cal的套件中,我就輸入cal(舉例)

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

接著將cal開頭的模組用拖曳的方式,拉到套件cal底下就完成囉!

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

6. 套件匯入(import)的語法

套件在主程式中匯入(import)的語法和上述模組的類似

匯入的寫法是 : from 套件名稱 import 模組名稱 as 自己可以再命名

我從套件cal中匯入一個專門計算面積的模組(cal_area),並且再重新取名叫cal_a

(as可省略)

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

 

另一種寫法是 : import 套件名稱 . 模組名稱 as 自己可以再命名 (as可省略)

Python Eclipse pydev 初學 入門 教學 學習 Eclipse 基本方法 模組 套件 匯入 Module Package Import Function def

以上就是套件(Package)及模組(Module)的介紹!

 

 


用Python寫程式一點都不困難!

【Python-入門教學 第一話 : 如何安裝Python?

【Python-入門教學】 第二話 : 用Python向世界問好! 你的第一支程式碼

【Python-入門教學】 第三話 : 這是數字...? 還是..文字?? 辨別資料的型態(型別)

【Python-入門教學】 第四話 : 變數是...會改變的數字? 變數的介紹

【Python-入門教學】 第五話 : 運算子?邊緣子?傻傻分不清楚。數學的基礎,四則運算加減乘除 - 運算子

【Python-入門教學】 第六話 : 字串就像烤串一樣,可拆可串還可算! - 字串的處理

【Python-入門教學】 第七話 : 資料一串接一串,就用串列來處理 - 串列(List)

【Python-入門教學】 第八話 : 不想讓串列元素隨意更動? 改用元組吧! - 元組(tuple)

【Python-入門教學】 第九話 : 我的『字典』裡沒有~放棄,因為我已經在學py了! - 字典(dict)

【Python-入門教學】 第十話 : 通通有~聽口令~集合! - 集合(set)

【Python-入門教學】 第十一話 : 除了算術、指定運算子,還有『比較』和『邏輯』運算子!

【Python-入門教學】 第十二話:如果...我就...不然...,常見的判斷 - if...elif...else

【Python-入門教學】 第十三話 : 日復一日,年復一年,一直重複就是迴圈 - for/while

【Python-入門教學】 第十四話 : 重複做的事情偶爾也想終止或是偷懶一次 - Break/Continue

【Python-入門教學】 第十五話 : 凡事都有例外,讓我們try看看 - try...except

【Python-入門教學】 第十六話 : 數學有公式,程式有函式 - 函式(function)

arrow
arrow
    創作者介紹
    創作者 iLoveTech 的頭像
    iLoveTech

    TechShare

    iLoveTech 發表在 痞客邦 留言(0) 人氣()