__init__ là một phương thức đặc biệt trong Python, được gọi là “constructor” (hàm khởi tạo) của một lớp (class). Phương thức này được tự động gọi khi một đối tượng (instance) của lớp được tạo ra. Mục đích chính của __init__ là để khởi tạo các thuộc tính (attributes) của đối tượng và thiết lập trạng thái ban đầu của nó.
class ClassName:
    def __init__(self, param1, param2, ...):
        self.attribute1 = param1
        self.attribute2 = param2
        # Khởi tạo các thuộc tính khác
self: Là tham số đầu tiên của phương thức __init__. self đại diện cho đối tượng hiện tại của lớp, cho phép bạn truy cập các thuộc tính và phương thức của lớp.param1, param2, …: Các tham số bổ sung mà bạn có thể truyền vào để khởi tạo thuộc tính của đối tượng.__init__class Dog:
    def __init__(self, name, age):
        self.name = name  # Khởi tạo thuộc tính name
        self.age = age    # Khởi tạo thuộc tính age
    def bark(self):
        print(f"{self.name} says Woof!")
# Tạo một đối tượng của lớp Dog
my_dog = Dog("Buddy", 3)
# Truy cập thuộc tính
print(my_dog.name)  # Kết quả: Buddy
print(my_dog.age)   # Kết quả: 3
# Gọi phương thức
my_dog.bark()       # Kết quả: Buddy says Woof!
Trong ví dụ trên, khi tạo một đối tượng my_dog của lớp Dog, phương thức __init__ sẽ được gọi với các tham số "Buddy" và 3. Các thuộc tính name và age được khởi tạo với các giá trị này.
class Car:
    def __init__(self, make, model, year=2020):
        self.make = make
        self.model = model
        self.year = year
# Tạo đối tượng với năm mặc định
my_car = Car("Toyota", "Camry")
print(my_car.year)  # Kết quả: 2020
# Tạo đối tượng với năm cụ thể
another_car = Car("Honda", "Accord", 2022)
print(another_car.year)  # Kết quả: 2022
Trong ví dụ này, tham số year có giá trị mặc định là 2020. Nếu bạn không cung cấp giá trị cho year, giá trị mặc định sẽ được sử dụng.
__init__?__init__ cho phép bạn khởi tạo các thuộc tính của đối tượng ngay khi nó được tạo ra, giúp bạn dễ dàng thiết lập trạng thái ban đầu.__init__ giúp mã của bạn trở nên rõ ràng và dễ hiểu hơn, vì nó cho phép bạn thiết lập cấu trúc của đối tượng ngay khi nó được tạo ra.__init__ là một phần quan trọng trong lập trình hướng đối tượng với Python. Nó cho phép bạn khởi tạo các thuộc tính của đối tượng và thiết lập trạng thái ban đầu, giúp cho việc quản lý và sử dụng các đối tượng trở nên dễ dàng và trực quan hơn.