python中__init__()方法詳情
python類中定義的函數(shù)稱為方法, init ()方法本質(zhì)也是一個函數(shù)。這個函數(shù)的作用是初始化實例后的對象。
具體如下例:
init()方法的作用是初始化實例后的對象cqueue。
class CQueue:
類中的函數(shù)稱為方法 ,這里的__init__()方法在類實例化是被自動調(diào)用。若類定義了__init__()方法,類的實例化操作會自動調(diào)用__init__方法。
__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。
類的方法和普通函數(shù)的區(qū)別只有一個,類的方法必須有一個額外的第一個參數(shù)名稱,按照慣例它的名稱是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()
#調(diào)用類中的appendTail()函數(shù),增加元素。
cqueue.appendTail(243)
cqueue.appendTail(2)
cqueue.appendTail(4)
cqueue.deleteHead()
cqueue.deleteHead()有無__init__的區(qū)別,結(jié)論如下:
1.在類實例化時,如果類中有__init__方法,此時調(diào)用__init__方法。
2.若該類沒有父類,也沒有__init__方法,則不會有任何操作。即對象不會被初始化。
3.若該類有父類,則去調(diào)用該類的父類中__init__方法。
具體實驗如下:
定義三個類:CQueue、student、sum,其中CQueue、student是sum的父類。

- 實驗1說明:
__init__方法的作用是初始化實例的類。 - 實驗2說明:當子類沒有__init__方法時,會在父類中進行初始化。
- 實驗3,4說明:
sum(student,CQueue ),子類sum沒有__init__方法時,會調(diào)用父類,并且調(diào)用父類中排在前面的父類,這里student類在CQueue前,所以調(diào)用student類中的__init__方法初始化實例的類。 - 實驗5說明:在類及其父類均沒有初始化時,實例化的類不會被初始化。
實驗1代碼:
class CQueue:
#類中的函數(shù)稱為方法 ,這里的__init__()方法在類實例化是被自動調(diào)用。若類定義了__init__()方法,類的實例化操作會自動調(diào)用__init__方法。
#__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。
#類的方法和普通函數(shù)的區(qū)別只有一個,類的方法必須有一個額外的第一個參數(shù)名稱,按照慣例它的名稱是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()實驗結(jié)果:

實驗2代碼:
class CQueue:
#類中的函數(shù)稱為方法 ,這里的__init__()方法在類實例化是被自動調(diào)用。若類定義了__init__()方法,類的實例化操作會自動調(diào)用__init__方法。
#__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。
#類的方法和普通函數(shù)的區(qū)別只有一個,類的方法必須有一個額外的第一個參數(shù)名稱,按照慣例它的名稱是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()實驗結(jié)果:

實驗3,4,省略。
實驗5:
class CQueue:
#類中的函數(shù)稱為方法 ,這里的__init__()方法在類實例化是被自動調(diào)用。若類定義了__init__()方法,類的實例化操作會自動調(diào)用__init__方法。
#__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實例化操作上。self代表的是類的實例,而非類。
#類的方法和普通函數(shù)的區(qū)別只有一個,類的方法必須有一個額外的第一個參數(shù)名稱,按照慣例它的名稱是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()實驗結(jié)果:

從實驗結(jié)果可以看出,沒有任何操作。
到此這篇關(guān)于 python中__init__()方法詳情的文章就介紹到這了,更多相關(guān) python中__init__()方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用Quart作為web服務(wù)器的代碼實現(xiàn)
Quart 是一個異步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是傳統(tǒng)的 WSGI,這使得 Quart 特別適合用于構(gòu)建需要處理大量并發(fā)連接的高性能 Web 應用程序,本文給大家介紹了Python使用Quart作為web服務(wù)器的代碼實現(xiàn)2024-06-06

