python中__init__()方法詳情

python類中定義的函數稱為方法, init ()方法本質也是一個函數。這個函數的作用是初始化實例後的對象。

具體如下例:

init()方法的作用是初始化實例後的對象cqueue

class CQueue:

類中的函數稱為方法 ,這裡的__init__()方法在類實例化是被自動調用。若類定義瞭__init__()方法,類的實例化操作會自動調用__init__方法。

__init__方法可以有參數,參數通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。

類的方法和普通函數的區別隻有一個,類的方法必須有一個額外的第一個參數名稱,按照慣例它的名稱是self

class CQueue

    def __init__(self):

        self.A,self.B=[],[]

  

    def appendTail(self,value:int)->None:

        self.A.append(value)



    def deleteHead(self)->int:

        if self.B:

            return self.B.pop()

        if not self.A:

            return -1

        while self.A:

            self.B.append(self.A.pop())

        print(self.B)

        return self.B.pop()



if __name__=="__main__":

    #類CQueue的實例化,這裡的括號()不能丟。

    #__init__()方法的作用是初始化實例後的對象cqueue。

    cqueue=CQueue()

    #調用類中的appendTail()函數,增加元素。

    cqueue.appendTail(243)

    cqueue.appendTail(2)

    cqueue.appendTail(4)

    cqueue.deleteHead()

    cqueue.deleteHead()

有無__init__的區別,結論如下:

1.在類實例化時,如果類中有__init__方法,此時調用__init__方法。

2.若該類沒有父類,也沒有__init__方法,則不會有任何操作。即對象不會被初始化。

3.若該類有父類,則去調用該類的父類中__init__方法。

具體實驗如下:

定義三個類:CQueuestudentsum,其中CQueuestudentsum的父類。

  • 實驗1說明__init__方法的作用是初始化實例的類。
  • 實驗2說明:當子類沒有__init__方法時,會在父類中進行初始化。
  • 實驗3,4說明sum(student,CQueue ),子類sum沒有__init__方法時,會調用父類,並且調用父類中排在前面的父類,這裡student類在CQueue前,所以調用student類中的__init__方法初始化實例的類。
  • 實驗5說明:在類及其父類均沒有初始化時,實例化的類不會被初始化。

實驗1代碼:

class CQueue:

    #類中的函數稱為方法 ,這裡的__init__()方法在類實例化是被自動調用。若類定義瞭__init__()方法,類的實例化操作會自動調用__init__方法。

    #__init__方法可以有參數,參數通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。

    #類的方法和普通函數的區別隻有一個,類的方法必須有一個額外的第一個參數名稱,按照慣例它的名稱是self。

    def __init__(self):

        self.A,self.B=[],[]



    def appendTail(self,value:int)->None:

        self.A.append(value)



    def deleteHead(self)->int:

        if self.B:

            return self.B.pop()

        if not self.A:

            return -1

        while self.A:

            self.B.append(self.A.pop())

        print(self.B)

        return self.B.pop()

class student:

        def __init__(self):

            print("測試輸出1")

        def test1(self):

            print("測試輸出2")



class sum(student,CQueue ):

        def __init__(self):

            print("測試輸出3")

        def test2(self):

            print("測試輸出4")

if __name__=="__main__":

    #類CQueue的實例化,這裡的括號()不能丟。

    s=sum()

實驗結果:

實驗2代碼:

class CQueue:

    #類中的函數稱為方法 ,這裡的__init__()方法在類實例化是被自動調用。若類定義瞭__init__()方法,類的實例化操作會自動調用__init__方法。

    #__init__方法可以有參數,參數通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。

    #類的方法和普通函數的區別隻有一個,類的方法必須有一個額外的第一個參數名稱,按照慣例它的名稱是self。

    def __init__(self):

        self.A,self.B=[],[]



    def appendTail(self,value:int)->None:

        self.A.append(value)



    def deleteHead(self)->int:

        if self.B:

            return self.B.pop()

        if not self.A:

            return -1

        while self.A:

            self.B.append(self.A.pop())

        print(self.B)

        return self.B.pop()

class student:

        def __init__(self):

            print("測試輸出1")

        def test1(self):

            print("測試輸出2")



class sum(student,CQueue ):

        # def __init__(self):

        #     print("測試輸出3")

        def test2(self):

            print("測試輸出4")



if __name__=="__main__":

    #類CQueue的實例化,這裡的括號()不能丟。

    s=sum()

實驗結果:

實驗3,4,省略。

實驗5:

class CQueue:

    #類中的函數稱為方法 ,這裡的__init__()方法在類實例化是被自動調用。若類定義瞭__init__()方法,類的實例化操作會自動調用__init__方法。

    #__init__方法可以有參數,參數通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。

    #類的方法和普通函數的區別隻有一個,類的方法必須有一個額外的第一個參數名稱,按照慣例它的名稱是self。

    def __init__(self):

        self.A,self.B=[],[]



    def appendTail(self,value:int)->None:

        self.A.append(value)



    def deleteHead(self)->int:

        if self.B:

            return self.B.pop()

        if not self.A:

            return -1

        while self.A:

            self.B.append(self.A.pop())

        print(self.B)

        return self.B.pop()

class student:

        # def __init__(self):

        #     print("測試輸出1")

        def test1(self):

            print("測試輸出2")



class sum(student,CQueue ):

        # def __init__(self):

        #     print("測試輸出3")

        def test2(self):

            print("測試輸出4")



if __name__=="__main__":

    #類CQueue的實例化,這裡的括號()不能丟。

    s=sum()

實驗結果:

從實驗結果可以看出,沒有任何操作。

到此這篇關於 python中__init__()方法詳情的文章就介紹到這瞭,更多相關 python中__init__()方法內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: