1. 程式人生 > 程式設計 >Python中的__init__作用是什麼

Python中的__init__作用是什麼

看到Python中有個函式名比較奇特,__init__我知道加下劃線的函式會自動執行,但是不知道它存在的具體意義..

Python中所有的類成員(包括資料成員)都是 公共的 ,所有的方法都是 有效的 。

只有一個例外:如果你使用的資料成員名稱以 雙下劃線字首 比如__privatevar,Python的名稱管理體系會有效地把它作為私有變數。

這樣就有一個慣例,如果某個變數只想在類或物件中使用,就應該以單下劃線字首。而其他的名稱都將作為公共的,可以被其他類/物件使用。記住這只是一個慣例,並不是Python所要求的(與雙下劃線字首不同)。

同樣,注意__del__方法與 destructor 的概念類似。"

恍然大悟原來__init__在類中被用做建構函式,固定寫法,看似很死板,其實有道理

def __init__(self,name):
  '''Initializes the person's data.'''
  self.name = name
  print '(Initializing %s)' % self.name
  # When this person is created,he/she
  # adds to the population
  Person.population += 1

name變數屬於物件(它使用self賦值)因此是物件的變數

self.name的值根據每個物件指定,這表明了它作為物件的變數的本質。

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

class Box:
  def setDimension(self,width,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(b.getVolume())

我們在Box類中定義了setDimension方法去設定該Box的屬性,這樣過於繁瑣,而用__init__()這個特殊的方法就可以方便地自己對類的屬性進行定義,__init__()方法又被稱為構造器(constructor)

class Box:
  #def setDimension(self,depth):
  #  self.width = width
  #  self.height = height
  #  self.depth = depth
  def __init__(self,depth):
    self.width = width
    self.height = height
    self.depth = depth
  def getVolume(self):
    return self.width * self.height * self.depth
b = Box(10,30)
print(b.getVolume())

知識點擴充套件:

__init__()要點如下:

1.名稱固定,必須為__init__()

2.第一個引數固定,必須為self。self指的就是剛剛建立好的示例物件。

3.建構函式通常用來初始化示例屬性,如下程式碼就是初始化示例屬性:

4.通過類名(引數列表),來呼叫建構函式,呼叫後,將建立好的物件返回給相應的變數。

5.__init__()方法:初始化建立好的物件,初始化指的是:"給例項屬性賦值"

6.__new__()方法:用於建立物件,但我們一般無需定義該方法。

以上就是Python中的__init__作用是什麼的詳細內容,更多關於Python中的__init__到底是幹什麼的的資料請關注我們其它相關文章!