1. 程式人生 > >python----類的定義、繼承與重定義

python----類的定義、繼承與重定義

 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)