python中子類(lèi)父類(lèi)繼承具體指什么 是指第二個(gè)類(lèi)的參數(shù)是第一個(gè)類(lèi)嗎,加于不加有什么區(qū)別呢
問(wèn)題描述
這兩個(gè)不同代碼塊有撒區(qū)別,最后的結(jié)果是一樣的啊
class A(object): def __init__(self, name):self.name=nameprint ('name:', self.name) def getName(self):return ’A ’ + self.nameclass B(A): def __init__(self, name):print ('hi')self.name = name def getName(self):return ’B ’+self.nameif __name__==’__main__’: b=B(’hello’) print( b.getName())#di二geclass A(object): def __init__(self, name):self.name=nameprint ('name:', self.name) def getName(self):return ’A ’ + self.nameclass B(A): def __init__(self, name):super(B, self).__init__(name)print ('hi')self.name = name def getName(self):return ’B ’+self.nameif __name__==’__main__’: b=B(’hello’) print (b.getName())
問(wèn)題解答
回答1:最后的結(jié)果怎么會(huì)是一樣呢?第一種的結(jié)果是:hiB hello第二種的結(jié)果是:(’name:’, ’hello’)hiB hello
第二種里面調(diào)用了父類(lèi)的A.__init__('hello'), 而第一種是override了父類(lèi)的__init__(self, name) function.
