Python學習第十五篇——類繼承和類實例化


       學習Python類時,我們明白了類的本質,以及所謂的面向對象編程思想強調的對事物本身的屬性,我們對某一類事物進行描述——采用了很多方法,這些方法描述了類的屬性(比如貓科動物的眼睛,四肢,是否哺乳類等等)老虎屬於貓科動物,因此我們可以用貓科動物的類描述來描述老虎。但除了這些共性之外,老虎自身也具有一定的差異性,這就引出了繼承這一概念:

      即我們在描述老虎這一對象時,可以保留貓科動物這個類的屬性,同時為老虎描述新的 屬性,當然,我們也是創建老虎類來描述老虎(畢竟還有東北虎,華南虎之分)。下面請見一段代碼:

 1 class  Car():
 2     def __init__(self,make,model,year):
 3         self.make = make
 4         self.model  = model
 5         self.year = year
 6         self.odometer_reading = 0
 7         
 8     def get_descriptive_name(self):
 9         long_name = str(self.year)+' '+self.make+' '+self.model
10         return long_name.title()
11             
12     def red_odometer(self):
13         print("This car has "+str(self.odometer_reading)+" miles on it.")
14         
15     def updata_odometer(self,mileage):
16         if migeage >= self.odometer_reading:
17             self_odometer_reading = mileage
18         else:
19             print("You can't roll back an odometer!")
20         
21     def increment_odometer(self,miles):
22         self.odometer_reading = self.odometer_reading+miles
23 
24 class Battery():
25     def __init__(self,battery_size=70):
26         self.battery_size = battery_size
27         
28     def describe_battery(self):
29         print("This car has a "+str(self.battery_size)+"-kwh battery.")    
30     
31         
32 class ElectricCar(Car):
33     def __init__(self,make,model,year):
34         super().__init__(make,model,year)
35         self.battery = Battery()
36         
37         
38 my_tesla = ElectricCar('tesla','models',2016)
39 print(my_tesla.get_descriptive_name())
40 my_tesla.battery.describe_battery()
41             

代碼中先創建了一個類,用來描述Car,但是我們要描述特斯拉這種電動汽車,可以繼承Car的屬性,同時創建自身的一些屬性。

2 隨着屬性元素越來越多,類中方法的描述也越來越多,因此可以將一些屬性獨立出來,也封裝成一個類,只不過在使用的時候,將這些小類實例化成屬性。比如上述代碼中對battery的描述

 

這里再次強調:用類描述事物的方法:1 初始化類的屬性  2:用方法(def)來描述這些屬性


免責聲明!

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



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