Python中 __init__的通俗解釋是什么?
可能大家常常會在面向對象編程中看到__init__,而且幾乎每個類中都會有,它的作用都是是什么呢?
要想明白__init__,你首先要弄清楚面向對象是什么?
Python是一門面向對象的編程語言,面向對象是一種代碼封裝的技術,包含了各種功能,讓代碼能重復利用、高效節能。
我們通過class來定義類,類又包含了屬性、方法等,屬性是類里面的變量,方法是類里面的函數
而__init__就是其中一種函數,叫做構造函數。
def __init__(self, ):
代碼塊
每次創建類的實例對象時,__init__函數就會自動被調用,無論它里面有什么樣的變量、計算,統統會自動調用。
可能你又會問實例對象是什么?其實我們可以把類比作一張建筑圖紙,而實例對象是建造的房子,房子的所有功能都是根據圖紙來設計的。
理解__init__函數需要搞清楚以下三點:
- 帶有兩個下劃線開頭的函數是聲明該屬性為私有,不能在類地外部被使用或直接訪問
- init函數(方法)支持帶參數的類的初始化 ,也可為聲明該類的屬性
- init函數(方法)的第一個參數必須是 self(self為習慣用法,也可以用別的名字),后續參數則可 以自由指定,和定義函數沒有任何區別。
# 不帶參數
class Sample:
def __init__(self):
print("自動調用構造方法")
# 定義了一個實例屬性
self.name = "小明"
test = Sample()
print(test.name)
# 輸出結果
自動調用構造方法
小明
如上,在創建 test這個對象時,隱式調用了手動創建的__init__()構造方法。
構造函數__init__為什么會存在?
顧名思義,就像房子必須有地基、框架、大梁一樣,是房子的基礎,實例對象也需要有的構造的基礎,這就是構造函數的作用,給實例對象最原始的屬性。
所以綜上,構造方法__init__用于創建實例對象時使用,每當創建一個類的實例對象時,Python 解釋器都會自動調用它,用來初始化對象的某些屬性。