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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM