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__ 的常見用途
-
初始化對象屬性
這是最常見的用途。當你希望每個實例都有一些默認或傳入的屬性值時,就可以在 __init__ 中定義這些屬性。 -
做一些必要的準備工作
比如連接數據庫、讀取配置文件等。例如:class Database: def __init__(self, db_name): self.connection = connect_to_database(db_name)
-
驗證輸入參數
可以在初始化的時候檢查傳入的數據是否合法: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中主要用于初始化類的實例,設定對象的基本屬性和做一些初始化工作。它是類中最常用的方法之一,理解它對掌握面向對象編程非常關鍵。
基本上就這些,用起來不復雜但容易忽略細節,尤其是繼承和參數處理部分,多寫幾次就能熟悉了。