使用类和实例.py
'''使用类和实例''' 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_odometer(self): """打印一条指出汽车里程的消息""" print("This car has" + str(self.odometer_reading) + "miles on it.") #2用方法修改属性的值 def update_odometer(self,mileage): """将里程表数设置为指定的值,禁止将里程表数回调""" if mileage >= self.odometer_reading: self.odometer_reading = mileage else: print("You can't roll back an odometer!") #3通过方法对属性值的量进行递增 def increase_odometer(self,miles): """将里程表读数增加指定的量""" self.odometer_reading += miles my_new_car = Car('audi','a4',2016) print(my_new_car.get_descriptive_name()) my_new_car.read_odometer() #直接修改属性的值 my_new_car.odometer_reading = 23 my_new_car.read_odometer() #2用方法修改属性的值 my_new_car.update_odometer(23) my_new_car.read_odometer() #3将里程表读数增加指定的量 my_new_car.increase_odometer(100) my_new_car.read_odometer()
"""继承""" class ElectricCar(Car): """电动汽车的独特之处""" def __init__(self,make,model,year): """初始化父类的属性""" super().__init__(make,model,year) self.battery = Battery() '''添加一条新属性''' #self.battery_size = 70 """添加一个描述battery的方法""" # def describe_batterry(self): # """打印一条描述电瓶容量的消息""" # print("This car has a" + str(self.battery_size) +'-KWH battery.') # my_tesla = ElectricCar('tesla','model s',2016) # print(my_tesla.get_descriptive_name()) # my_tesla.describe_batterry() #重写父类的方法,在子类中添加方法同名父类中的,python首先考虑子类中的 def fill_gas_tank(self): """电动汽车没有油箱""" print("This car doesn't need a gas tank!") #将实例用做属性 class Battery(): """一次模拟电动汽车点评的简单尝试""" def __init__(self,battery_size= 70): """初始化电瓶的属性""" self.battery_size = battery_size def describe_battery(self): """打印一条描述电瓶容量的消息""" print("This car has a " + str(self.battery_size) + "-KWH battery.") def get_range(self): """打印一条信息。 指出电瓶的续航里程""" if self.battery_size ==70: range = 240 elif self.battery_size ==85: range = 270 message = "This car can go approximately" + str(range) message += "miles on a full charge" print(message) my_tesla = ElectricCar('tesla','model s','2016') print(my_tesla.get_descriptive_name()) my_tesla.battery.describe_battery() my_tesla.battery.get_range()