子類和父類

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

Class P(object):編碼

    def __init__(self,name):.net

        self.name = nameblog

        print(self.name)it

Class C(P):object

    pass方法

c = C('my name is c') -->必定要有父類的初始化函數,不然會出錯ps

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

相關文章
相關標籤/搜索