Python 類中為什麼要定義 init

2022-03-15 15:37:04 字數 1257 閱讀 2205

學習並**:

1. 不用init()方法定義類

定義乙個矩形的類,目的是求周長和面積。

class rectangle():

def getperi(self,a,b):

return (a + b)*2

def getarea(self,a,b):

return a*b

rect = rectangle()

print(rect.getperi(3,4))

print(rect.getarea(3,4))

print(rect.__dict__)

得到結果:

14

12 {}

從上例中可以看到,我們在類中並沒有定義init()方法,但是也能夠得到類似的要求,結果返回了矩形例項rect的周長及面積。

但是,我們通過print(rect.dict)來看這個例項的屬性,竟然是空的,我定義了乙個矩形,按理來說它的屬性應該是它的長、寬。但是它竟然沒有。這就是沒有定義init()的原因了。

並且,在例項化物件的時候,rect = rectangle()引數為空,沒有指定a、b的值,只有在呼叫函式的時候才指定了。且類中定義的每個方法的引數都有a、b,這顯然浪費感情,在類中直接指定方法就可以了。、

因此吧,需要在類中定義init()方法,方便建立例項的時候,需要給例項繫結上屬性,也方便類中的方法(函式)的定義。

2、用init()方法定義類

上述同樣的例子,採用init()方法定義類,如下:

class rectangle():

def __init__(self,a,b):

self.a = a

self.b = b

def getperi(self):

return (self.a + self.b)*2

def getarea(self):

return self.a * self.b

rect = rectangle(3,4)

print(rect.getperi())

print(rect.getarea())

print(rect.__dict__)

out14

12

定義完init()後,建立的每個例項都有自己的屬性,也方便直接呼叫類中的函式。

Python 類中為什麼要定義 init

我在今天以前,寫 一般是這樣的 計算長方形的周長和面積 def getperi a,b return a b 2 def getarea a,b return a b print getperi 4,5 print getarea 3,4 然後我發現大多數是這樣寫的 coding utf 8 先定義...

python學習 類中為什麼要定義 init

總結一下,加上 init 方法後,類才可以例項化,不加類就是個空殼,相當於乙個方法集合 學習python的類,一直不太理解為什麼一定要定義init 方法,現在簡要談一下自己的理解吧。1 不用init 方法定義類 定義乙個矩形的類,目的是求周長和面積。class rectangle def getpe...

python基礎 類中為什麼要定義 init

在python中定義類經常會用到 init 函式 方法 init 的理解 1.首先需要理解的是,兩個下劃線開頭的函式是宣告該屬性為私有,不能在類的外部被使用或訪問。2.init 函式 方法 支援帶引數類的初始化,也可為宣告該類的屬性 類中的變數 init 函式 方法 的第乙個引數必須為self,後續...