Форум сайта python.su
1
class Car: def __init__(self, type='общий', color='белый', whells=4, engine=100): self.type = type # тип автомобиля self.color = color # цвет автомобиля self.whells = whells # количество колес self.engine = engine # мощность двигателя def drive(self): "метод движения автомобиля" print('Автомобиль {0} едет'.format(self.type)) def stop(self): "метод торможения автомобиля" print('Автомобиль {0} остановлен'.format(self.type)) def signal(self): "метод звукового сигнала автомобиля" print('Автомобиль {0} сигналит'.format(self.type)) def technical_passport(self): print('Тип автомобиля - {0}, количество колес - {1}, цвет - {2},' ' мощность двигателя - {3}'.format(self.type, self.whells, self.color, self.engine)) class FireTruck(Car): def extinguish_fires(self): "метод тушения пожара" print('Автомобиль {0} включил водомет'.format(self.type)) def signal(self): "метод звукового сигнала автомобиля переопределен. Сигнал заменили на сирену." print('Автомобиль {0} включил сирену'.format(self.type)) car = Car() car.drive() car.stop() car.signal() car.technical_passport() print('') fire_truck = FireTruck(type='пожарный', color='красный', whells=6, engine=200) fire_truck.drive() fire_truck.stop() fire_truck.signal() fire_truck.extinguish_fires() fire_truck.technical_passport()
Отредактировано Rudium (Фев. 11, 2016 07:48:50)
Офлайн
1
То что вы назвали ‘редачить код методов’ называется переопределением метода. В книге не совсем удачный пример приведен. Нет необходимости переопределять все методы родительского класса. Чаще всего совсем ничего не нужно переопределять. Только дополнять специализированными.
Отредактировано Rudium (Фев. 11, 2016 08:05:49)
Офлайн