面向對象的編程帶來的主要好處之一是代碼的重用,實現這種重用的方法之一是通過繼承機制.繼承完全可以理解成類之間的類型和子類型關系.
需要注意的地方:繼承語法 class 派生類名(基類名)://… 基類名寫在括號裡,基本類是在類定義的時候,在元組之中指明的.
在python中繼承中的一些特點:
1:在繼承中基類的構造(init()方法)不會被自動調用,它需要在其派生類的構造中親自專門調用.
2:在調用基類的方法時,需要加上基類的類名前綴,且需要帶上self參數變量.區別在於類中調用普通函數時並不需要帶上self參數
3:Python總是首先查找對應類型的方法,如果它不能在派生類中找到對應的方法,它才開始到基類中逐個查找.(先在本類中查找調用的方法,找不到才去基類中找).
如果在繼承元組中列了一個以上的類,那麼它就被稱作”多重繼承” .
語法:
派生類的聲明,與他們的父類類似,繼承的基類列表跟在類名之後,如下所示:
class SubClassName (ParentClass1[, ParentClass2, ...]):
class Parent:
number = 100
def __init__(self):
print "Invoke parent constructor method"
def parentMethod(self):
print 'Invoke parent method'
def setNumber(self, num):
self.number = num
def getNumber(self):
print "Parent's number :", self.number
class Child(Parent):
def __init__(self):
print "Invoke child constructor method"
def childMethod(self):
print 'Invoke child method'
c = Child()
c.childMethod()
c.parentMethod()
c.setNumber(200)
c.getNumber()
運行結果:
Invoke child constructor method
Invoke child method
Invoke parent method
Parent’s number 200
python支持多繼承:
class A: # 定義類 A
.....
class B: # 定義類 B
.....
class C(A, B): # 繼承類 A 和 B
Two methods related to the class:
issubclass() -Determines whether a class is a subclass or descendant of another class,語法:issubclass(sub,sup)
isinstance(obj, Class) 如果obj是Class類的實例對象或者是一個Class子類的實例對象則返回true,否則返回false.
更多內容請關注微信公眾號
Address book management system
Catalog Preface One 、plt.tit