繼承簡介
繼承是面對物件的三大特點之一
通過繼承我們可以使乙個類獲取他繼承的類中的屬性(變數)和方法(函式)
在定義類時,可以在類名後面的括號中指定當前類的父類(超類,基類)
繼承提高了類的復用性。讓類與類之間產生了關係。又累這個關係,才有了多型的特性。
方法重寫如果在子類中有和父類同名的方法,如果我們呼叫子類是呼叫同名的方法,那
那直譯器首先回去子類中去方法只有子類中沒有了,直譯器才會去父類中去查詢,
,這樣我們就可以更好的修改乙個我們不能修改的類,建立乙個新類,繼承舊類
修改要改進的方法,然後呼叫原先的方法這樣就可以不動原先的**
呼叫乙個方法時:會優先去當前物件中尋找是否具有該方法,如果有則直接調有用
如果沒有,則去當前物件的父類中尋找,如果父類中有則直接呼叫父類中的方法
如果沒有,則去父類中尋找,依次類推,直到找到object(所有類的父類)如果依然沒找到就會報錯。
supersuper()可以獲取當前的父類
並且通過super()返回物件呼叫父類的方法時不要呼叫self
多重繼承
在python中是⽀持多重繼承的。也就是我們可以為⼀個類同時制定多個⽗類
可以在類名的()後邊新增多個類,來實現多重繼承
多重繼承,會使⼦類同時擁有多個⽗類,並且會獲取到所有⽗類中的⽅法
在開發中沒有特殊情況,應該盡量避免使⽤多重繼承。因為多重繼承會讓我
們的**更加複雜
如果多個⽗類中有同名的⽅法,則會先在第⼀個⽗類中尋找,然後找第⼆
個,找第三個…前⾯會覆蓋後⾯的
多型時面對物件的三大特性之一。從字面上理解多種形態
乙個物件可以以不同的性態去展現。
⾯向物件三⼤特性
封裝 確保物件中資料的安全
基礎 保證了物件的擴充套件性
多型 保證了程式的靈活性
屬性
類屬性,直接在類中定義的屬性是類屬性
類屬性可以通過類或類的例項訪問到。但是類屬性只能通過類物件來修
改,⽆法通過例項物件修改
例項屬性 通過例項物件新增的屬性屬於例項屬性
例項屬性只能通過例項物件來訪問和修改,類物件⽆法訪問修改
⽅法 在類中定義,以self為第⼀個引數的⽅法都是例項⽅法
例項⽅法在調⽤時,python會將調⽤物件以self傳⼊
例項⽅法可以通過類例項和類去調⽤
當通過例項調⽤時,會⾃動將當前調⽤物件作為self傳⼊
當通過類調⽤時,不會⾃動傳遞self,我們必須⼿動傳遞self
類⽅法 在類的內容以@classmethod 來修飾的⽅法屬性類⽅法
類⽅法第⼀個引數是cls 也會⾃動被傳遞。cls就是當前的類物件
類⽅法和例項⽅法的區別,例項⽅法的第⼀個引數是self,類⽅法的第⼀
個引數是cls
類⽅法可以通過類去調⽤,也可以通過例項調⽤
靜態⽅法
在類中⽤@staticmethod來修飾的⽅法屬於靜態⽅法
python類的三大特性 封裝
四 property屬性 封裝 指隱藏物件的屬性和實現細節,不允許外部直接方位物件內部的資訊,僅僅提供公共的訪問方式給外部,實現外部對內部的操作和訪問。封裝的目的 封裝的益處 python中採用雙下劃線開頭的方式將變數設定為私有變數,即 私有變數的特點 classp object def init ...
python十大特性 python三大特性
python中也有三大特性,封裝 繼承和多型。封裝封裝,就是只能在類的內部訪問,外部訪問屬性或方法會報異常,python中的封裝很簡單,只要在屬性前或者方法名前加上兩個下劃線就可以,如self.name,def eat self 這樣就完成了屬性和方法的私有化,也就是封裝。在python中封裝並不是...
類的三大特性 封裝以及Property特性
class people def init self,height,weight self.height height self.weight weight property 裝飾器,下面方法的呼叫無需加 defbmi self return self.weight self.height 2 pe...