__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"
và 3
. Các thuộc tính name
và age
đượ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__
?
- 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.
- 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.
- 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.