Python里__init__的作用 類構造函數__init__在Python中的用法解析

init 是 python 類中的構造方法,在創建實例時自動調用,用于初始化對象屬性或執行必要設置。1. 它用于初始化對象的屬性,例如設定默認值或接收傳入值;2. 可用于執行必要的準備工作,如連接數據庫;3. 能驗證輸入參數,確保數據合法性;4. 使用時需注意第一個參數必須是 self,支持默認參數但不可返回非 none 值;5. 繼承時若重寫 __init__,需手動調用父類構造方法以執行其初始化邏輯。

python中,__init__ 方法是一個特殊的方法,通常用于初始化對象的狀態。簡單來說,它的主要作用就是在創建類的實例時自動執行一些設置操作,比如給對象的屬性賦值。這有點像“出生時自帶裝備”——每個新創建的對象都能按照預定的方式準備好自己的數據。


什么是 __init__?

__init__ 是一個類中的構造方法(構造函數),它在你創建一個類的新實例時自動被調用。你可以通過這個方法為對象設置初始狀態,也就是給對象添加屬性并賦予初始值。

舉個例子:

class Person:     def __init__(self, name, age):         self.name = name         self.age = age  p = Person("Tom", 25)

在這個例子中,當我們創建 Person 類的一個實例 p 時,__init__ 方法就會被調用,把 “Tom” 和 25 分別賦值給 p.name 和 p.age。

立即學習Python免費學習筆記(深入)”;

需要注意的是,雖然 __init__ 很像構造函數,但它其實并不是真正的構造函數,因為對象在調用 __init__ 之前就已經創建好了。它更像是一個初始化器。


__init__ 的常見用途

  1. 初始化對象屬性
    這是最常見的用途。當你希望每個實例都有一些默認或傳入的屬性值時,就可以在 __init__ 中定義這些屬性。

  2. 做一些必要的準備工作
    比如連接數據庫、讀取配置文件等。例如:

    class Database:     def __init__(self, db_name):         self.connection = connect_to_database(db_name)
  3. 驗證輸入參數
    可以在初始化的時候檢查傳入的數據是否合法:

    class Rectangle:     def __init__(self, width, height):         if width <= 0 or height <= 0:             raise ValueError("Width and height must be positive.")         self.width = width         self.height = height

使用 __init__ 的注意事項

  • 第一個參數必須是 self
    self 是指向對象本身的引用,所有對象的屬性都要通過 self 來綁定。

  • 可以有默認參數
    如果某些參數不強制要求傳入,可以在定義時使用默認值:

    def __init__(self, name, age=18):     self.name = name     self.age = age
  • 不要返回非None的值
    因為 __init__ 是用來初始化對象的,不應該返回除 None 以外的任何值,否則會引發異常。

  • 支持繼承時的調用鏈
    如果你在子類中重寫了 __init__,記得手動調用父類的構造方法,否則父類的初始化邏輯不會自動執行:

    class Child(Parent):     def __init__(self, name, age):         super().__init__(name)  # 調用父類的 __init__         self.age = age

總結一下

__init__ 在Python中主要用于初始化類的實例,設定對象的基本屬性和做一些初始化工作。它是類中最常用的方法之一,理解它對掌握面向對象編程非常關鍵。

基本上就這些,用起來不復雜但容易忽略細節,尤其是繼承和參數處理部分,多寫幾次就能熟悉了。

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享