當程式愈來愈複雜時,為了更有結構化的管理資料和供能,這時『物件與類別』就派上用場了!Python 本身是一個物件導向程式語言,俗稱『OOP』,幾乎所有的東西都是物件。
依照類別所建立出來的實例,也就是說具體存在的東西。
簡單說物件就是類別的實例。
像是藍圖或是模板,定義了一個物件應該有哪些屬性和方法。
舉個例子來說,有個類別為『汽車』,這台車子有品牌、顏色等屬性,以及前進、後退、煞車等方法,而『某人的白色Audi』就是物件,它是『汽車』這個爛別的具體實例。
在 Python 中使用class
關鍵字來定義類別。
class className:
class Car:
# 建構子 (Constructor),建立物件時會自動呼叫
def __init__(self, brand, color):
self.brand = brand # 屬性
self.color = color # 屬性
# 方法
def drive(self):
print(f"{self.color} 的 {self.brand} 前進。")
def stop(self):
print(f"{self.brand} 煞車。")
# 建立物件
my_car = Car("Audi", "白色")
your_car = Car("Toyota", "黑色")
# 呼叫方法
my_car.drive()
your_car.stop()
這邊可以看見self
參數,這一開始看到時可能很難理解,不過可以把它解釋成『實例化後的物件本身』也就是自己的概念會比較好理解。
補充一下__init__
的東西,以下可以看到三個brand
和三個color
,用brand
舉例好了,這三個brand
並非是相同的東西。
class Car:
def __init__(self, brand, color):
self.brand = brand
self.color = color
讓我們拆解開來看,實際上會是這樣的:
這樣一來應該可以看得出來區別了!
def __init__(self, 品牌, 顏色):
self.brand = 品牌
self.color = 顏色
__init__
初始化方法中定義,並透過self
指向。self
,代表物件本身。class Person:
def __init__(self, name, age):
self.name = name # 屬性
self.age = age # 屬性
def introduce(self): # 方法
print(f"大家好,我是 {self.name},今年 {self.age} 歲。")
p1 = Person("小明", 18)
p1.introduce() # 我是小明,今年18歲。
那麼今天就介紹到這,明天見ㄅㄅ!