類----簡單總結
類的構成
1 class 類名: 2 def __init__(self,參數1,參數2): 3 self.對象的屬性1 = 參數1 4 self.對象的屬性2 = 參數2 5 6 def 方法名(self):pass 7 8 def 方法名2(self):pass 9 10 對象名 = 類名(1,2) #對象就是實例,代表一個具體的東西 11 #類名() : 類名+括號就是實例化一個類,相當於調用了__init__方法 12 #括號裏傳參數,參數不需要傳self,其他與init中的形參一一對應類的總結13 #結果返回一個對象 14 對象名.對象的屬性1 #查看對象的屬性,直接用 對象名.屬性名 即可 15 對象名.方法名() #調用類中的方法,直接用 對象名.方法名() 即可
繼承
1.繼承是一種創建新類的方式
2.新建的類可以創建一個或多個父類,父類有稱為基類或者超類
3.新建的類稱為派生類或者子類
在python中類的繼承分為:單繼承或多繼承
?1 2 3 4 5 6 7 8 9 10 11 |
class ParentClass1: #定義父類
pass
class ParentClass2: #定義父類
pass
class SubClass1(ParentClass1): #單繼承,基類是ParentClass1,派生類是SubClass
pass
class SubClass2(ParentClass1,ParentClass2): #python支持多繼承,用逗號分隔開多個繼承的類
pass
|
4.查看所有繼承的父類
print(Person.__bases__) #__base __只查看從左到右繼承的第一個子類,__bases__則是查看所有繼承的父類
如果沒有指定父類,python會默認繼承object類,object是所有python的父類。
經典類:在python2中,class Dad: 不會繼承object,這樣的類叫做經典類(它叫經典類,不是因為它經典,而是因為它比較老)
新式類:在python3中,python會默認繼承object類(一切皆對象)
class Dad 就相當於python2中的 class Dad(object) #新式類
而且python3中沒有經典類了
5.繼承與抽象(先抽象後繼承)
抽象:抽取類似或者說比較像的部分(也就是提取一類事物的特點,範圍越來越大,共性越來越少)
是從大範圍到小範圍的過程
繼承:是基於抽象的過程,通過編程語言去實現它,肯定是先經歷抽象這個過程,才能通過繼承的方式去表達出抽象的結構
是從小範圍到大範圍的過程
6.派生:(相對論)
1.在父類的基礎上產生子類,產生的子類就叫做派生類
2.父類裏沒有的方法,在子類中有了,這樣的方法就叫做派生方法。
3.父類裏有,子類也有的方法,就叫做方法的重寫(就是把父類裏的方法重寫了)
7.註意的幾個概念:
1.子類可以使用父類的所有屬性和方法
2.如果子類有自己的方法,就執行自己的;如果子類沒有自己的方法,就會找父類的。
3.如果子類裏面沒有找到,父類裏也沒有找到,就會報錯
4.如果子類中實現了調用父類的方法
在類內:super(子類,self).方法名() supper().__init__(參數)
在類外:super(子類名,對象名).方法名()
單例模式
類的調用
類----簡單總結