一、 方法重寫
當父類中的方法不符合我們的需求時,可以通過重寫,實現我們的需求
方法重寫後,預設呼叫子類的方法
1. 方法重寫
class foo(object):
def __init__(self):
self.name = 'foo'
def hi(self):
print('hi,foo')
class foo2(foo):
def hi(self):
print('hi,foo2')
if __name__ == '__main__':
f = foo2()
f.hi() #預設呼叫子類方法
結果:
hi,foo2
二、呼叫父類的普通方法
3種方法詳見**注釋
class foo(object):
def __init__(self):
self.name = 'foo'
def hi(self):
print('hi,foo')
class foo2(foo):
def hi(self):
#foo.hi(self) #方法1:在重寫的方法內強制呼叫 父類名.父類方法名() 如果需要引數,則需要傳參
super(foo2,self).hi() #方法2: super(子類名,子類物件).父類方法() 如果需要引數,則需要傳參
#super().hi() #方法3:僅支援python3
print('hi,foo2')
if __name__ == '__main__':
f = foo2()
f.hi() #呼叫父類方法
結果:
hi,foo
hi,foo2
三、呼叫父類的——屬性
同呼叫父類的普通方法一樣
class foo(object):
def __init__(self):
self.name = 'foo'
def hi(self):
print('hi,foo')
class foo2(foo):
def __init__(self):
#foo.__init__(self) #方法1:在重寫的方法內強制呼叫 父類名.父類方法名() 如果需要引數,則需要傳參
#super(foo2,self).__init__() #方法2: super(子類名,子類物件).父類方法() 如果需要引數,則需要傳參
super().__init__() #方法3: 僅python3支援
def hi(self):
print('hi,foo2')
if __name__ == '__main__':
f = foo2()
f.hi() #呼叫父類方法
print(f.name)
結果:
hi,foo2
foo
重寫父類方法和呼叫父類方法
class animal object def eat self print 吃 def drink self print 喝 class dog animal def bark self print 汪汪叫 print 汪汪叫 print 汪汪叫 print 汪汪叫 print 汪汪叫 class...
重寫 呼叫父類方法
所謂重寫,就是子類中,有乙個和父類相同名字的方法,在子類中的方法會覆蓋掉父類中同名的方法 class cat object def sayhello self print halou 1 class bosi cat def sayhello self print halou 2 bosi bosi...
python之重寫父類方法
修改父類的方法 重寫父類的方法的目的是為了給他擴充套件功能,父類的方法已經不能滿足需求 核心思想就一句話,先呼叫一下你要重寫的父類方法,class coon object 基本類 def init self,host,password,port self.host host self.passwor...