Python 的類別(Class)與物件(Object)
Python 提供了一種概念稱為「 類別(class)」,它讓我們可以創造自己的資料型態來表現複雜的事物。例如我們無法用一個單一的數字、字串或布林值來描述一個人或一台手機,因為它們有太多的屬性:人有年紀、膚色、身高等,手機則有型號、號碼、作業系統、是否防水等。
這時候,我們就可以用 Python 的「類別(class)」來解決這個問題。我們可以自己定義一個新的資料型態,讓這個資料型態包含了我們需要的所有資訊。以下我們以手機為例,定義一個「手機」的類別:
1 |
|
我們定義好類別之後,就可以用這個類別來創建新的物件了:
1 | my_phone = Phone("iOS", "123", True) |
在這裡,我們用 Phone 類別創建了一個新的物件,並且將這個物件存入了 my_phone 變數中。這個物件的操作系統是 “iOS”,型號是 “123”,並且是防水的。
1 | print(my_phone.os) |
1 | # iOS |
方法(Method)
除了屬性之外,我們的類別還可以包含方法(Method)。方法是屬於物件的函式,它可以讓物件進行某些操作。例如,我們可以為我們的手機增加一個撥打電話的方法:
1 | class Phone: |
在這裡,我們增加了一個 make_call 方法。這個方法接受一個電話號碼作為參數,並且列印出一條撥打電話的訊息。我們可以這樣使用這個方法:
1 | my_phone = Phone("iOS", "123", True) |
在這裡,我們先創建了一個 Phone 物件並存入 my_phone,然後我們呼叫 my_phone 的 make_call 方法來撥打電話。這時會看到 “正在撥打電話到 0987654321…” 的訊息。
繼承(Inheritance)
Python 的類別也支援繼承,這意味著一個類別可以繼承另一個類別的所有屬性和方法。例如,我們可以創建一個 SmartPhone 類別,它繼承自 Phone 類別並增加一個瀏覽網頁的方法:
1 | class SmartPhone(Phone): |
在這裡,SmartPhone 類別繼承自 Phone 類別,所以它有 Phone 類別的所有屬性和方法,同時我們也增加了一個新的 browse_web 方法。我們可以這樣使用這個類別:
1 | my_smart_phone = SmartPhone("Android", "456", True) |
在這裡,我們先創建了一個 SmartPhone 物件並存入 my_smart_phone,然後我們呼叫 my_smart_phone 的 make_call 和 browse_web 方法。

作者: 微風