上次把Python的基礎語法講完,這次要來簡單介紹物件導向的相關概念
簡單來講就是把程式包裝成物件,藉此提高重用性、可擴充性、維護性
以車子為例,可以把這個物件當成是一個"Class",Class 類似物件的藍圖,而物件就是 Class 的實例。
class Car:
def __init__(self, make, model, year):
self.make = make # 生產廠家
self.model = model # 車型
self.year = year # 生產年份
def display_info(self):
return f"{self.year} {self.make} {self.model}"
在上面的 code,我們定義了 Car 的 Class, 首先先初始化這個物件的資料,下面的 display_info是這個Class的方法(method),負責與物件進行互動,以上面為例是回傳此物件的資料。
my_car = Car("Toyota", "Corolla", 2020)
以此例子,my_car就是Car的物件
print(my_car.display_info())
呼叫物件方法以實現與物件互動。
簡單來講就是隱藏物件的實作細節,只保留方法,以機器為例,只需要知道使用方法,不用知道其製作方法。這樣做可以提高程式可讀性,且讓程式更好維護。
以Python為例,在屬性前面加入雙底線可讓外部無法存取
class Car:
def __init__(self, make, model, year):
self.__make = make # 生產廠家
self.__model = model # 車型
self.__year = year # 生產年份
假設現在要創建電動,它的屬性跟汽車會重疊,但是會新增一個電池量的屬性,這個時候就可以用繼承,將原本的"Car"繼承到"ElectricCar"上。
class ElectricCar(Car):
def __init__(self, make, model, year, battery_size):
super().__init__(make, model, year)
self.battery_size = battery_size
簡單來講就是有相同方法,但實現方式
def show_car_info(car):
print(car.display_info())
以 show_car_info 函式為例,只要是car類別都可以調用此函數
所以繼承 Car 類別的 ElectricCar 也可以用
my_car = Car("Toyota", "Corolla", 2020)
my_electric_car = ElectricCar("Tesla", "Model 3", 2021, 75)
show_car_info(my_car)
show_car_info(my_electric_car)
明天預計會介紹selenium