1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 #!/usr/bin/env python 5 # -*- coding: utf-8 -*- 6 7 class car(): #定义一个类 8 9 def __init__(self,make,model,year): #初始化类的属性 __init__(self): 是固定格式,self为python调用这个类本身的一个参数,必须加上。 10 self.make = make #定义make属性的值 11 self.model = model #定义model属性的值 12 self.year = year #定义year属性的值 13 self.odometer_reading = 0 #定义odometer_reading属性的值,并将其默认值设置为0. 14 15 def get_describe_name(self): #定义一种方法,其与函数一样,只是在类里面的叫法不同。一个类可以定义多种方法,每种方法都是对类的一些操作。 16 long_name = str(self.year) + ' ' + self.make + ' ' + self.model 17 return long_name.title() 18 19 def read_odometer(self): 20 print("This car has" + str(self.odometer_reading) + ' miles on it') 21 22 def update_odometer(self,mileage): 23 if mileage >= self.odometer_reading: 24 self.odometer_reading = mileage 25 else: 26 print("You can't roll back an odometer!") 27 28 def increment_odometer(self,miles): 29 self.odometer_reading += miles 30 31 class ElectricCar(car): #新建一个类,并以car作为他的父类。 32 def __init__(self,make,model,year,number): #初始化的时候,先继承父类的参数,再重构自己的参数。 33 super().__init__(make,model,year) #继承父类的属性结构,在python2.7中写法为super(ElectricCar,self)。 34 self.new_number = number #定义自身的属性 35 36 def get_describe_name(self): #假设父类有一个方法不符合子类的需求,需要重写,则可重定义一个重名的方法。 37 print('Show you the new_number!!!!') #父类的get_describe_name(self)与此处的get_describe_name(self)的内容是不同的。 38 39 a = ElectricCar('tasla','model s',2016,111) 40 print(a.get_describe_name()) 41 print(a.model,a.new_number,a.year)