子類和父類
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
子類和父類