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

2021-10-03 07:37:46 字數 1305 閱讀 6032

在python中定義類經常會用到__init__函式(方法)

__init__的理解:

1.首先需要理解的是,兩個下劃線開頭的函式是宣告該屬性為私有,不能在類的外部被使用或訪問。

2.__init__函式(方法)支援帶引數類的初始化,也可為宣告該類的屬性(類中的變數)。__init__函式(方法)的第乙個引數必須為self,後續引數為自己定義。

__init__()方法意義重大的原因有兩個。

第乙個原因是在物件生命週期中初始化是最重要的一步;每個物件必須正確初始化後才能正常工作。

第二個原因是__init__()引數值可以有多種形式。

從文字理解比較困難,通過下面的例子能非常容易理解這個概念:

例如我們定義乙個box類,有width, height, depth三個屬性,以及計算體積的方法:

#不使用__init__構建

class box:

def setdimension(self, width, height, depth):

self.width = width

self.height = height

self.depth = depth

def getvolume(self):

return self.width * self.height * self.depth

b = box()

b.setdimension(10, 20, 30)

print("不使用__init__呼叫的結果:",b.getvolume())

#我們在box類中定義了setdimension方法去設定該box的屬性,這樣過於繁瑣,

# 而用__init__()這個特殊的方法就可以方便地自己對類的屬性進行定義,__init__()方法又被稱為構造器(constructor)。

#使用__init__進行構建

class box1:

def __init__(self, width, height, depth):

self.width = width

self.height = height

self.depth = depth

def getvolume(self):

return self.width * self.height * self.depth

#直接對類進行傳值,不需要呼叫一次類,再對類裡面的方法進行傳值

b = box1(10, 20, 30)

print("使用__init__呼叫的結果:",b.getvolume())

python中為什麼要繼承object類

這裡先列出一段簡短的 coding utf 8 author zhengtong class person object name zhengtong if name main x person 通過這段 當我們例項化person 這個類的時候,那x就是乙個例項物件,整個過程python除了建立pe...

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

學習並 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.getp...