若欄位只被一個子類別使用,那就下移吧。

Push Down Field
# Before
class Vehicle:
def __init__(self, name):
self.name = name
class Car(Vehicle):
def display_name(self):
print(f"This car is named: {self.name}")
class Motorcycle(Vehicle):
def display_name(self):
print(f"This motorcycle is named: {self.name}")
# After
class Vehicle:
pass
class Car(Vehicle):
def __init__(self, name):
self.name = name
def display_name(self):
print(f"This car is named: {self.name}")
class Motorcycle(Vehicle):
def __init__(self, name):
self.name = name
def display_name(self):
print(f"This motorcycle is named: {self.name}")