__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ó.

Cú Pháp

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

Các Tham Số

  • 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.

Ví Dụ Về Sử Dụng __init__

1. Tạo một lớp cơ bản

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"3. Các thuộc tính nameage được khởi tạo với các giá trị này.

2. Sử dụng giá trị mặc định

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.

Tại Sao Nên Sử Dụng __init__?

  1. Khởi Tạo Thuộc Tính: __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.
  2. Tăng Tính Linh Hoạt: Bằng cách sử dụng các tham số, bạn có thể tạo ra các đối tượng với các giá trị khác nhau cho thuộc tính của chúng mà không cần phải gọi các phương thức khởi tạo riêng biệt.
  3. Cải Thiện Đọc Được: Việc sử dụng __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.

Kết Luận

__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.