若兩子類別有名稱相似欄位,被用的方式也相似時,就可採用此手法。
這樣除了移除重複的資料宣告外,也將對應行為統一移至超類別中。

Pull Up Field

# Before
class Vehicle:
    pass

class Car(Vehicle):
    def __init__(self):
        self.vehicle_type = "Car"

class Truck(Vehicle):
    def __init__(self):
        self.vehicle_type = "Truck"

# After
class Vehicle:
    def __init__(self, vehicle_type):
        self.vehicle_type = vehicle_type

class Car(Vehicle):
    def __init__(self):
        super().__init__("Car")

class Truck(Vehicle):
    def __init__(self):
        super().__init__("Truck")