函式(Function)或方法(Method)是程式設計中用來封裝可重複執行邏輯的獨立程式區塊,能接收輸入、執行特定任務並返回結果。它就像程式的「小工具」,讓程式碼更模組化、易讀與維護。
定義與基本概念
函式是一組有名稱(或匿名)的程式碼片段,透過定義後可多次呼叫,減少重複撰寫。
核心元素包括:
-
參數(Parameters):輸入值,用於傳遞資料給函式。
-
本體(Body):執行的邏輯步驟。
-
返回值(Return Value):處理後的輸出,可選。
例如,在Python中定義def add(a, b): return a + b,呼叫add(3, 5)得8。
函式與方法的區別
函式是獨立存在的,方法則屬於物件導向程式設計(OOP)中類別(Class)的一部分,透過物件呼叫。
| 特性 | 函式 (Function) | 方法 (Method) |
|---|---|---|
| 歸屬 | 全域或模組獨立 | 綁定於類別或物件 |
| 呼叫方式 | 直接名稱(參數) | 物件.方法(參數) |
| 範例 | print("Hi") |
obj.calculate() |
方法常見如類別內的建構子(Constructor)或實例方法,提升OOP封裝性。
優點與實際應用
使用函式能提升程式效率,例如重複計算薪資邏輯只需定義一次。
主要優點:
-
重複利用:一次定義,多處呼叫。
-
模組化:拆分複雜程式,便於除錯。
-
可讀性:抽象細節,聚焦高階邏輯。
-
測試性:獨立測試單元。
在AI課程開發中,如定義train_model(data)函式處理模型訓練,整合資料前處理與評估。
進階類型與範例
函式支援多種形式,包括遞迴、Lambda(匿名函式)和高階函式。
-
遞迴:函式自我呼叫,如計算階乘
factorial(n) = n * factorial(n-1)。 -
Lambda:簡短表達式,如Python的
lambda x: x**2。 -
高階:接受或返回函式,如
map(lambda x: x*2, list)。
範例(Python):
def greet(name): # 簡單函式
return f"你好,{name}!"
print(greet("AI學習者")) # 輸出:你好,AI學習者!
注意範圍(Scope):區域變數僅函式內有效,全域需關鍵字宣告,避免意外修改。