Python中 __init__的通俗解釋是什么?

可能大家常常會在面向對象編程中看到__init__,而且?guī)缀趺總€類中都會有,它的作用都是是什么呢?

要想明白__init__,你首先要弄清楚面向對象是什么?
Python是一門面向對象的編程語言,面向對象是一種代碼封裝的技術,包含了各種功能,讓代碼能重復利用、高效節(jié)能。
我們通過class來定義類,類又包含了屬性、方法等,屬性是類里面的變量,方法是類里面的函數(shù)
而__init__就是其中一種函數(shù),叫做構造函數(shù)。
def __init__(self,):
代碼塊

每次創(chuàng)建類的實例對象時,__init__函數(shù)就會自動被調用,無論它里面有什么樣的變量、計算,統(tǒng)統(tǒng)會自動調用。
可能你又會問實例對象是什么?其實我們可以把類比作一張建筑圖紙,而實例對象是建造的房子,房子的所有功能都是根據(jù)圖紙來設計的。

理解__init__函數(shù)需要搞清楚以下三點:
- 帶有兩個下劃線開頭的函數(shù)是聲明該屬性為私有,不能在類地外部被使用或直接訪問
- init函數(shù)(方法)支持帶參數(shù)的類的初始化 ,也可為聲明該類的屬性
- init函數(shù)(方法)的第一個參數(shù)必須是 self(self為習慣用法,也可以用別的名字),后續(xù)參數(shù)則可 以自由指定,和定義函數(shù)沒有任何區(qū)別。
# 不帶參數(shù)
class Sample:
def __init__(self):
print("自動調用構造方法")
# 定義了一個實例屬性
self.name = "小明"
test = Sample()
print(test.name)
# 輸出結果
自動調用構造方法
小明
如上,在創(chuàng)建 test這個對象時,隱式調用了手動創(chuàng)建的__init__()構造方法。
構造函數(shù)__init__為什么會存在?
顧名思義,就像房子必須有地基、框架、大梁一樣,是房子的基礎,實例對象也需要有的構造的基礎,這就是構造函數(shù)的作用,給實例對象最原始的屬性。
所以綜上,構造方法__init__用于創(chuàng)建實例對象時使用,每當創(chuàng)建一個類的實例對象時,Python 解釋器都會自動調用它,用來初始化對象的某些屬性。






























