Car 将从车辆继承。汽车应该有一辆拖车类型的车辆,我不知道如何将其放入代码中。我想过创建一个类变量,但我认为它没有意义,我如何确保拖车是车辆类型而不是汽车?
为什么是类变量而不是实例变量?
我如何确定拖车是车辆而不是汽车?
为什么会有与此相关的风险?
如果我对情况的理解正确,您可以这样做:
class Vehicle:
def __init__(self, num_wheels: int, list_weight_item: float) -> None:
self.num_wheels = num_wheels
self.list_weight_item = list_weight_item
def __repr__(self) -> str:
return f"Vehicle(num_wheels={self.num_wheels}, " \
f"list_weight_item={self.list_weight_item})"
class Trailer(Vehicle):
def __init__(self, num_wheels: int, list_weight_item: float, cargo_type: str) -> None:
super().__init__(num_wheels, list_weight_item)
self.cargo_type = cargo_type
def __repr__(self) -> str:
return f"Trailer(num_wheels={self.num_wheels}, " \
f"list_weight_item={self.list_weight_item}, " \
f"cargo_type={self.cargo_type})"
class Car(Vehicle):
def __init__(self, num_wheels: int, list_weight_item: float, list_weight_people: float,
trailer: Trailer = None) -> None:
super().__init__(num_wheels, list_weight_item)
self.list_weight_people = list_weight_people
self.trailer = trailer
def __repr__(self) -> str:
return f"Car(num_wheels={self.num_wheels}, " \
f"list_weight_item={self.list_weight_item}, " \
f"list_weight_people={self.list_weight_people}, " \
f"trailer={self.trailer})"
t_1 = Vehicle(2, 100)
t_2 = Trailer(num_wheels=2, list_weight_item=1000, cargo_type='car')
t_3 = Car(num_wheels=4, list_weight_item=2000, list_weight_people=200, trailer=t_2)
t_4 = Car(num_wheels=4, list_weight_item=2500, list_weight_people=300)
print(t_1, t_2, t_3, t_4, sep='\n')