pyhon類繼承
阿新 • • 發佈:2018-01-11
style pos 代碼 on() 一個 實例 super true body
1,python類的繼承
class A(object): name =‘eason‘ age = ‘22‘ def __init__(self): print ‘我是A的構造函數!!!‘ def getname(self): return self.name def getage(self): return self.age class B(object): name = ‘linsir‘ age=‘30‘ def __init__(self): print ‘我是B的構造函數!!!‘ def getname(self): return self.name def getage(self): return self.age class C(A,B): def __init__(self): print ‘我是我自己的構造函數‘ #調用父類的構造函數 super(C,self).__init__() name = ‘testsir‘ age = ‘25‘ person1 = C() print person1.getname() print person1.getage() 運行結果: 我是我自己的構造函數 我是A的構造函數!!! testsir 25
子類如果沒有構造函數,默認會使用父類的構造函數,如果繼承多個父類,看哪個父類寫在前面就調用哪個父類的構造。調用父類的第一個方法:可以用super函數。super(son,self).__init__() 調用父類的第二個方法:父類.方法名(self),不建議使用,因為如果有多個調用父類的方法的代碼,如果類的名稱一旦發生變化,則意味這後面調用父類的方法的代碼都得變。 2,python方法重寫
C繼承了A和B ,所以A和B為C的父類或者說是基類。
A和B為C的子類,或者說是AB的派生類。
class father(object): def __init__(self): self.name = ‘tom‘ print ‘father‘ def func(self): print ‘father.func‘ def bad(self): print ‘father抽煙喝酒 ‘ class son(father): def __init__(self): super(son,self).__init__() print ‘son‘ def sonc(self): print ‘son.sonc‘ #重寫bad函數,不在使用父類的函數。如果想調用父類的函數,可以用super執行父類的方法。 def bad(self): #調用 # super(son, self).bad() # father.bad(self) print ‘son賭博‘ son1 = son() son1.sonc() son1.bad() 運行結果: father son son.sonc son賭博
son1 = son()實例化一個對象出來,調用bad方法,由於子類已經有bad方法,故無需重父類調用,即達到父類方法的重寫功能。
pyhon類繼承