# -*- coding: utf-8 -*- class Vehicle: #車輛 def __init__(self, power): self.vPower = power def setPower(self, power): self.vPower = power def getPower(self): return self.vPower def __repr__(self): return '動力為 "{}" 驅動的車輛'.format(self.vPower) __str__ = __repr__ class Bicycle(Vehicle): def __init__(self, power, name, wheels): Vehicle.__init__(self, power) self.name = name self.nWheels = wheels def setName(self, name): self.name = name def getName(self): return self.name def setWheels(self, wheels): self.nWheels = wheels def getWheels(self): return self.nWheels def __repr__(self): return ('"{0}" 是動力為 "{1}" 驅動的車輛,輪胎數為{2}' .format(self.name, self.getPower(), self.getWheels())) __str__=__repr__ class Truckcycle(Bicycle): def __init__(self, power, name, wheels, capacity, loading = 0): Bicycle.__init__(self, power, name, wheels) self.vCapacity = capacity self.vLoading = loading def setCapacity(self, capacity): self.vCapacity = capacity def getCapacity(self): return self.vCapacity def setLoading(self, loading): assert loading <= self.vCapacity, "Overloaded" self.vLoading = loading def getLoading(self): return self.vLoading """ def __repr__(self): return ('"{0}" 是動力為 "{1}" 驅動的車輛,輪胎數為{2},\ 載貨空間為{3},目前荷重為{4}'.format(self.name, self.getPower(), self.getWheels(), self.getCapacity(), self.getLoading())) """ def __repr__(self): return (super().__repr__() + "載貨空間為{},目前荷重為{}".format(self.getCapacity(), self.getLoading())) __str__ = __repr__ def __eq__(self, other): if isinstance(other, self.__class__): return self.__dict__==other.__dict__ else: return False