Python構造函數:__init__方法


  Python中有一個構造函數,__init__方法,之前學習中遇到過這個函數,當時弄明白了,幾個月沒看Python之后全忘光了,現在整理總結一下。

因為是自學,沒有大神或學友討論,只能依靠百度或者查找其他資料,學習進度比較慢,有時候還容易鑽牛角尖。

 

言歸正傳!

 

  __init__方法的第一個屬性永遠都是self,表示創建的實際本身,因此,在__init__方法中可以將實例化對象的各種屬性綁定到self,__init__方法傳入參數時不能為空,必須傳入與__init__方法匹配的參數。

昨天在學寫測試案例的代碼時,需要調用一個Math類,遇到了初始化函數,給對象賦值的時候研究了很久,代碼如下

class Math():
def __init__(self,a,b):
self.a=int(a)
self.b=int(b)

def add_Test(self):
return self.a+self.b


n=Math(5,6)
m=n.add_Test()
print(m)

k=Math(58,9).add_Test()
print(k)

運行結果如下:

11
67

Process finished with exit code 0

  以上代碼中時含有初始化函數,因此,在給Math類定義對象的時候需要賦值,而不是調用方法的時候賦值,例如,以前學習方法的時候是這樣給對象賦值的,代碼如下:

class Math2(): #與上面的案例相比,去掉初始化函數
    def Add(self,c,d): return c+d z=Math2().Add(3,4) print(z)

運行結果如下:

7 Process finished with exit code 0

因此,當沒有構造函數時,我們是要在方法中賦值的。

 

這個問題困擾了我很久,一度懷疑自己不會定義對象了,現在終於弄明白了,很開心!

 與君共勉!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM