Python__init__ python中的init怎么理解

可能大家常常會在面向對象編程中看到__init__,而且幾乎每個類中都會有 , 它的作用都是是什么呢?要想明白__init__ , 你首先要弄清楚面向對象是什么?Python是一門面向對象的編程語言 , 面向對象是一種代碼封裝的技術 , 包含了各種功能 , 讓代碼能重復
可能大家常常會在面向對象編程中看到__init__,而且幾乎每個類中都會有 , 它的作用都是是什么呢?

Python__init__ python中的init怎么理解

文章插圖
要想明白__init__ , 你首先要弄清楚面向對象是什么?

Python是一門面向對象的編程語言 , 面向對象是一種代碼封裝的技術 , 包含了各種功能 , 讓代碼能重復利用、高效節能 。
我們通過class來定義類 , 類又包含了屬性、方法等 , 屬性是類里面的變量 , 方法是類里面的函數
而__init__就是其中一種函數 , 叫做構造函數 。
代碼塊
Python__init__ python中的init怎么理解

文章插圖
每次創建類的實例對象時 , __init__函數就會自動被調用 , 無論它里面有什么樣的變量、計算 , 統統會自動調用 。
可能你又會問實例對象是什么?其實我們可以把類比作一張建筑圖紙 , 而實例對象是建造的房子 , 房子的所有功能都是根據圖紙來設計的 。
Python__init__ python中的init怎么理解

文章插圖
理解__init__函數需要搞清楚以下三點:
1、帶有兩個下劃線開頭的函數是聲明該屬性為私有 , 不能在類地外部被使用或直接訪問
2、init函數(方法)支持帶參數的類的初始化  , 也可為聲明該類的屬性
3、init函數(方法)的第一個參數必須是 self(self為習慣用法 , 也可以用別的名字) , 后續參數則可 以自由指定 , 和定義函數沒有任何區別 。
【Python__init__ python中的init怎么理解】# 不帶參數
class Sample:
def __init__(self):
print(\\\"自動調用構造方法\\\")
# 定義了一個實例屬性
self.name = \\\"小明\\\"

test = Sample()
print(test.name)

# 輸出結果
自動調用構造方法
小明

如上 , 在創建 test這個對象時 , 隱式調用了手動創建的__init__()構造方法
構造函數__init__為什么會存在?
顧名思義 , 就像房子必須有地基、框架、大梁一樣 , 是房子的基礎 , 實例對象也需要有的構造的基礎 , 這就是構造函數的作用 , 給實例對象最原始的屬性 。
所以綜上 , 「構造方法__init__用于創建實例對象時使用 , 每當創建一個類的實例對象時 , Python 解釋器都會自動調用它 , 用來初始化對象的某些屬性 。」

    推薦閱讀