在這篇文章之中我們來瞭解一下python類的繼承,對於剛剛接觸到python這一程式設計語言的朋友來說,對於python類的繼承的瞭解應該比較少,不過沒關係,在接下來的文章之中我們就來瞭解一下
python類的繼承規則,我會在下文之中就
python類的繼承舉例來進行分析。
類的繼承
物件導向的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制。
通過繼承建立的新類稱為子類或衍生類別,被繼承的類稱為基類、父類或超類。
繼承文法
class 衍生類別名(基類名) ...
在python中繼承中的一些特點:
1、如果在子類中需要父類的構造方法就需要顯示的調用父類的構造方法,或者不重寫父類的構造方法。詳細說明可查看:python 子類繼承父類建構函式說明。
2、在調用基類的方法時,需要加上基類的類名首碼,且需要帶上 self 參數變數。區別在於類中調用普通函數時並不需要帶上 self 參數
3、Python 總是首先尋找對應類型的方法,如果它不能在衍生類別中找到對應的方法,它才開始到基類中逐個尋找。(先在本類中尋找調用的方法,找不到才去基類中找)。
如果在繼承元組中列了一個以上的類,那麼它就被稱作"多重繼承" 。
文法
衍生類別的聲明,與他們的父類類似,繼承的基類列表跟在類名之後,如下所示:
class SubClassName (ParentClass1[, ParentClass2, ...]): ...
執行個體分析
# !/usr/bin/python# -*- coding: UTF-8 -*-class Parent: # 定義父類 parentAttr = 100 def __init__(self): print "調用父類建構函式" def parentMethod(self): print '調用父類方法' def setAttr(self, attr): Parent.parentAttr = attr def getAttr(self): print "父類屬性 :", Parent.parentAttrclass Child(Parent): # 定義子類 def __init__(self): print "調用子類構造方法" def childMethod(self): print '調用子類方法'c = Child() # 執行個體化子類c.childMethod() # 調用子類的方法c.parentMethod() # 調用父類方法c.setAttr(200) # 再次調用父類的方法 - 設定屬性值c.getAttr() # 再次調用父類的方法 - 擷取屬性值
以上代碼執行結果如下:
調用子類構造方法調用子類方法調用父類方法父類屬性 :200
你可以繼承多個類
class A: # 定義類 A.....class B: # 定義類 B.....class C(A, B): # 繼承類 A 和 B.....
你可以使用issubclass()或者isinstance()方法來檢測。
1.issubclass() - 布爾函數判斷一個類是另一個類的子類或者子孫類,文法:issubclass(sub,sup)
2.isinstance(obj, Class) 布爾函數如果obj是Class類的執行個體對象或者是一個Class子類的執行個體對象則返回true。