91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的__init__的詳細解析

發布時間:2020-07-17 13:59:03 來源:億速云 閱讀:178 作者:小豬 欄目:開發技術

這篇文章主要講解了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, 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(b.getVolume())

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

class Box:
  #def setDimension(self, width, height, depth):
  #  self.width = width
  #  self.height = height
  #  self.depth = depth
  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 = Box(10, 20, 30)
print(b.getVolume())

知識點擴展:

__init__()要點如下:

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

2.第一個參數固定,必須為self。self指的就是剛剛創建好的示例對象。

3.構造函數通常用來初始化示例屬性,如下代碼就是初始化示例屬性:

4.通過類名(參數列表),來調用構造函數,調用后,將創建好的對象返回給相應的變量。

5.__init__()方法:初始化創建好的對象,初始化指的是:"給實例屬性賦值"

6.__new__()方法:用于創建對象,但我們一般無需定義該方法。

看完上述內容,是不是對Python中的__init__的詳細解析有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿荣旗| 阿鲁科尔沁旗| 山阴县| 昭通市| 永昌县| 丹东市| 阿拉善盟| 孟州市| 文登市| 乌海市| 西吉县| 禹州市| 贺兰县| 贵溪市| 富源县| 金华市| 蒲城县| 交城县| 华安县| 邹城市| 洱源县| 哈巴河县| 鄂尔多斯市| 台北县| 吴忠市| 太保市| 威远县| 邵阳市| 钟祥市| 南汇区| 井陉县| 新津县| 南靖县| 普洱| 安乡县| 集安市| 北碚区| 于都县| 和平区| 鱼台县| 廊坊市|