# -*- coding: utf-8 -*- """ Created on Mon Dec 04 21:22:37 2017 @author: Echo """ #類的繼承 class Car():#父類 """一次模擬汽車的嘗試""" def __init__(self,make,model,year): self.make=make self.model=model self.year=year self.odometer_reading=0 #制定屬性的默認值 def get_descriptive_name(self): long_name=str(self.year)+' '+self.make+' '+self.model return long_name.title() def read_odmeter(self): print("This car has "+str(self.odometer_reading)+"miles on it!") def update_odmeter(self,mileage):#防止私自修改歷程數屬性 if mileage>=self.odometer_reading: self.odometer_reading-mileage else: print("請輸入大於當前里程的數值") def fill_gas_tank(): print("This Car dosen't have gas") class ElectriCar(Car): #子類 def __init__(self,make,model,year): Car.__init__(self,make,model,year) self.battery=70#添加子類屬性 def discribe_barrery(self):#添加子類方法 print("This car has "+str(self.battery)+"- KWh battery!") def fill_gas_tank():#重寫父類方法 print("This Car dosen't need a gas tank!") my_electricar=ElectriCar('tesla','A3',2015) print(my_electricar.get_descriptive_name()) class Battery():#電池類 def __init__(self,battery_size=70): self.battery_size=battery_size def describe_battery(): print("This car has "+str(self.battery)+"- KWh battery!") class ElectriCarNew(Car): #子類 def __init__(self,make,model,year): Car.__init__(self,make,model,year) self.battery=Battery()#使用實例作爲其他類的屬性