【发布时间】:2017-09-24 15:04:56
【问题描述】:
让我举一个简单的例子:
如果我想使用Tank 类实例作为汽车的属性。同时,我希望tank_info方法,根据Car类中的不同型号,给出不同的坦克尺寸。
class Car():
def __init__(self, make, model):
self.make = make
self.model = model
self.tank = Tank()
def get_car_info(self):
long_name = self.make + ' ' + self.model
print('The car is', long_name)
class Tank():
def __init__(self, tank_size=20):
self.tank_size = tank_size
def tank_info(self):
print('The tank size is', self.tank_size, 'gallons')
my_car = Car('Audi', 'A4')
my_car.get_car_info()
my_car.tank.tank_info()
假设奥迪有 A4、A6 和 A8,它们的油箱尺寸分别为 20、25、30。
我应该如何编写tank_info 方法,让它自动判断它的水箱尺寸?
【问题讨论】:
-
您是要硬编码不同型号的油箱尺寸,还是要将尺寸作为
Car.__init__的附加参数传递? -
使用字典将汽车映射到油箱尺寸。