您好,登錄后才能下訂單哦!
這篇文章主要講解了“python中__init__()怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“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()
有無(wú)__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說(shuō)明:__init__
方法的作用是初始化實(shí)例的類。
實(shí)驗(yàn)2說(shuō)明:當(dāng)子類沒有__init__方法時(shí),會(huì)在父類中進(jìn)行初始化。
實(shí)驗(yàn)3,4說(shuō)明:sum(student,CQueue )
,子類sum
沒有__init__方法時(shí),會(huì)調(diào)用父類,并且調(diào)用父類中排在前面的父類,這里student類在CQueue前,所以調(diào)用student
類中的__init__
方法初始化實(shí)例的類。
實(shí)驗(yàn)5說(shuō)明:在類及其父類均沒有初始化時(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("測(cè)試輸出1") def test1(self): print("測(cè)試輸出2") class sum(student,CQueue ): def __init__(self): print("測(cè)試輸出3") def test2(self): print("測(cè)試輸出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("測(cè)試輸出1") def test1(self): print("測(cè)試輸出2") class sum(student,CQueue ): # def __init__(self): # print("測(cè)試輸出3") def test2(self): print("測(cè)試輸出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("測(cè)試輸出1") def test1(self): print("測(cè)試輸出2") class sum(student,CQueue ): # def __init__(self): # print("測(cè)試輸出3") def test2(self): print("測(cè)試輸出4") if __name__=="__main__": #類CQueue的實(shí)例化,這里的括號(hào)()不能丟。 s=sum()
實(shí)驗(yàn)結(jié)果:
從實(shí)驗(yàn)結(jié)果可以看出,沒有任何操作。
感謝各位的閱讀,以上就是“python中__init__()怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)python中__init__()怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。