Python 的物件導向功能
Python 是具有「
物件導向」功能的程式語言(
Object Oriented Pragramming, OOP)。
其實在定義上,高煥堂老師提出的「
個體導向」更適合
OOP,例如:「人」就是一個個體,具有「特質」與「行動」。
不過,
OOP 在程式設計領域是一個重要且領域很廣泛的課題,因此本小節只聚焦於
Python 在
OOP 的用法,另外,也會視情況場合混用「
個體」和「
物件」兩種名稱。
觀察生活中,每個事物都是一個「
個體(boject)」:人、狗、貓、門、車、...等,我們還可對這些個體進行「分類」,人是一類,門是一類,車是一類,稱為「
類別(class)」。
每個類別又可再細分,如 推門、拉門、捲門。
以「門」這個類別而言,有幾個基本特性:門的高度、寬度、顏色,稱為「
屬性(attribute)」;還有基本動作:開門、關門,稱為「
方法(method)」,在類別的內部,「方法」是以「
函式」的形式達到動作的目的,「屬性」及「方法」在之後都將以英文稱呼
Python 的變數就是一個個體,每種個體依其性質會有不同的
attribute 和
method,
Python 的
OOP 表達方式為「
變數名.Attribute」或「
變數名.method()」
例如:
# 假設 door 是一個「門」類別的變數
# 門的 attribute
door.Height = 200 # 門的高度
door.Width = 90 # 門的寬度
door.Color = 'white' # 門的顏色
# 門的 method
door.Open() # 開門
door.Close() # 關門