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
因此,當沒有構造函數時,我們是要在方法中賦值的。
這個問題困擾了我很久,一度懷疑自己不會定義對象了,現在終於弄明白了,很開心!
與君共勉!