python 方法重寫 和 呼叫父類方法

2021-08-27 04:53:00 字數 1540 閱讀 6778

一、 方法重寫

當父類中的方法不符合我們的需求時,可以通過重寫,實現我們的需求

方法重寫後,預設呼叫子類的方法

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...