Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
實例就像是用那個模具做出來的蛋糕。
蛋糕模具(類別)定義了蛋糕應該有的形狀和特徵,
每個具體的蛋糕(實例)都有自己的名字、口味等屬性
舉個例子,讓我們創建一個簡單的蛋糕模具(類別):
class Cake:
def __init__(self, flavor, layers):
self.flavor = flavor #設定口味
self.layers = layers #設定層數
def describe(self):
print(f"This cake is {self.flavor} flavor and has {self.layers} layers.")
這個蛋糕模具有一個初始化方法 __init__
,用來設定蛋糕的口味和層數,還有一個 describe
方法,用來描述蛋糕的特徵,
初始化方法 __init__
,在每次使用類別創立物件時,都會先初始化這方法裡面的屬性flavor,layers,這個方法允許你在創建實例的同時,設定物件的初始屬性。
現在,我們可以用這個模具創建不同口味和層數的蛋糕:
利用類別cake(蛋糕模具)來創建兩個不同口味跟層數的蛋糕吧。
# 創建一個巧克力蛋糕
chocolate_cake = Cake(flavor="Chocolate", layers=3)
# 創建一個草莓蛋糕
strawberry_cake = Cake(flavor="Strawberry", layers=2)
# 描述這些蛋糕
chocolate_cake.describe()
strawberry_cake.describe()
chocolate_cake = Cake(flavor="Chocolate", layers=3)
,這段意思就是用剛剛我們寫的類別(Cake)蛋糕模具來創建一個chocolate_cake
的物件,其中包含了有口味跟層數這個屬性,會想這個屬性看起來就跟宣告的變數差不多阿。
有一些重要的差異。類別中的屬性與在外部宣告的變數有一些特殊之處:
banana_cake = Cake(flavor="banana", layers=5)
banana_cake
疑怎麼跟剛剛不一樣,因為只創建物件,並未使用describe
這個方法,所以只單純創建物件並沒有呼叫這個方法印出print(f"This cake is {self.flavor} flavor and has {self.layers} layers.")
想像一下,想在做蛋糕時忽然忘記剛剛放的是什麼調味,也可以只使用類別的屬性來查看,或者是修改調味
#使用類別的屬性
banana_cake.flavor
print(banana_cake.flavor)
#修改物件的屬性
banana_cake.flavor = 'apple'
print(banana_cake.flavor)
好,想像一下我們剛剛原本想做香蕉蛋糕,但臨時想吃蘋果口味的就修改了一下口味(屬性),讓我們將蛋糕做出,使用方法來印出,看是否有像我們想像的一樣是蘋果口味了
#做出蛋糕來,看是否有更換了口味了
banana_cake.describe()
好的,真的變蘋果口味了,讓我們來總結一下本文的學習總結
(蛋糕模型)類別定義: 使用 class 關鍵字創建類別,定義類別的屬性和方法。
(創造物件時會導入的屬性)初始化方法 __init__: 用 __init__ 方法初始化類別的屬性,這是在創建類別實例時自動調用的方法,巧克力,層數。
(口味,層數)屬性: 類別中的變數被稱為屬性,它們用來描述類別的狀態。
(巧克力蛋糕)實例: 通過實例化類別來創建類別的具體物件,每個實例都有自己的一套屬性。
(烤箱,印出蛋糕的口味及層數)方法: 類別中的函數被稱為方法,它們用來執行某些操作。方法通常作用於類別的屬性。