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

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

實(shí)驗(yàn)2代碼:
class CQueue:
#類中的函數(shù)稱為方法 ,這里的__init__()方法在類實(shí)例化是被自動(dòng)調(diào)用。若類定義了__init__()方法,類的實(shí)例化操作會(huì)自動(dòng)調(diào)用__init__方法。
#__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實(shí)例化操作上。self代表的是類的實(shí)例,而非類。
#類的方法和普通函數(shù)的區(qū)別只有一個(gè),類的方法必須有一個(gè)額外的第一個(gè)參數(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的實(shí)例化,這里的括號(hào)()不能丟。
s=sum()實(shí)驗(yàn)結(jié)果:

實(shí)驗(yàn)3,4,省略。
實(shí)驗(yàn)5:
class CQueue:
#類中的函數(shù)稱為方法 ,這里的__init__()方法在類實(shí)例化是被自動(dòng)調(diào)用。若類定義了__init__()方法,類的實(shí)例化操作會(huì)自動(dòng)調(diào)用__init__方法。
#__init__方法可以有參數(shù),參數(shù)通過__init__()傳遞到類的實(shí)例化操作上。self代表的是類的實(shí)例,而非類。
#類的方法和普通函數(shù)的區(qū)別只有一個(gè),類的方法必須有一個(gè)額外的第一個(gè)參數(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的實(shí)例化,這里的括號(hào)()不能丟。
s=sum()實(shí)驗(yàn)結(jié)果:

從實(shí)驗(yàn)結(jié)果可以看出,沒有任何操作。
到此這篇關(guān)于 python中__init__()方法詳情的文章就介紹到這了,更多相關(guān) python中__init__()方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python讀取HTML中的canvas并且以圖片形式存入Word文檔
這篇文章主要介紹了Python讀取HTML中的canvas并且以圖片形式存入Word文檔,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
matplotlib圖例legend語法及設(shè)置的方法
這篇文章主要介紹了matplotlib圖例legend語法及設(shè)置的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python tqdm 實(shí)現(xiàn)滾動(dòng)條不上下滾動(dòng)代碼(保持一行內(nèi)滾動(dòng))
這篇文章主要介紹了python tqdm 實(shí)現(xiàn)滾動(dòng)條不上下滾動(dòng)代碼(保持一行內(nèi)滾動(dòng)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python使用IPython調(diào)試debug程序
這篇文章主要為大家介紹了python使用IPython調(diào)試debug程序詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05

