1. 程式人生 > >子類和父類

子類和父類

article 有一個 per def -- 否則 bsp pass 了解

1. 子類沒有初始化函數, 則初始化子類的時候,需要有父類的初始化參數

Class P(object):

def __init__(self,name):

self.name = name

print(self.name)

Class C(P):

pass

c = C(‘my name is c‘) -->一定要有父類的初始化函數,否則會出錯

2. 子類有自己的初始化函數, 並且子類沒有顯式的調用父類的初始化函數的時候,初始化的時候,子類不需要帶父類的初始化參數,子類不會有父類的初始化參數

Class P(object):

def __init__(self,name):

self.name = name

print(self.name)

Class C(P):

def __init__(self):

self.name = ‘I‘m child‘

print(self.name)

c = C() -->初始化沒有問題

3. 子類有自己的初始化函數,且子類顯式的調用父類的初始化函數的時候,初始化的時候,子類不需要帶父類的初始化函數,但子類在調用父類的初始化函數的時候需要有父類的參數

Class P(object):

def __init__(self,name):

self.name = name

print(self.name)

Class C(P):

def __init__(self):

super(C,self).__init__(‘aaa‘) -->父類的參數,此句類似於 P.__init__(self,‘aaa‘),當在子類中需要調用父類的屬性或者方法時候,可以通過父類名直接訪問父類的屬性,當調用父類的方法是,需要將”self”顯示的傳遞進去,這種方式有一個不好的地方就是,需要經父類名硬編碼到子類中,為了解決這個問題,可以使用Python中的super關鍵字

self.t = ‘I‘m child‘

c = C() -->初始化沒有問題

c.name -->也有參數

原文出處:

https://blog.csdn.net/brucewong0516/article/details/79121179

子類和父類