Page 129 - Em Học Python
P. 129
KHỞI TẠO ĐỐI TƯỢNG
Khi tạo ra một đối tượng, đôi khi ta muốn đặt một vài giá trị (còn được gọi là các các
thuộc tính ⟨properties⟩ ) để về sau còn dùng. Khởi tạo ⟨initialize⟩ đối tượng là việc ta chuẩn bị
sẵn sàng cho đối tượng đó.
Giả sử nếu muốn đặt số đốm trên người hươu vào các đối tượng khi chúng được tạo
ra — tức là, khi chúng được khởi tạo. Để làm việc đó, ta viết ra một hàm gọi là __init__ (để
ý hai dấu gạch dưới đằng trước và đằng sau tên hàm, tổng cộng là bốn cái đấy nhé). Đây là
một kiểu hàm đặc biệt của các lớp trong Python và ta buộc phải viết tên như thế. Hàm init
là cách để ta có thể đặt các thuộc tính vào đối tượng ngay khi chúng được tạo ra. Python
luôn luôn gọi hàm này khi ta tạo ra một đối tượng mới. Viết hàm ấy như thế này:
>>> class Giraffes:
def __init__(self, spots):
self.giraffe_spots = spots
Đầu tiên ta viết hàm init nhận hai tham số self và spots như sau def
__init__(self, spots):. Cũng như các hàm khác được viết bên trong lớp, hàm init cũng
cần phải nhận self làm tham số đầu tiên. Sau đó ta gán tham số spots cho một biến
(chính là thuộc tính mà ta vừa nói) tên là giraffe_spots bằng tham số self bởi đoạn code
self.giraffe_spots = spots. Đoạn code này có thể tạm hiểu là “Giữ giá trị của tham số
spots để sau dùng lại (thông qua biến giraffe_spots).” Các biến ở trong lớp cũng có thể
được truy cập thông qua self y như hàm ở trong lớp vậy.
Tiếp, nếu tạo ra vài bạn hươu mới (Ozwald và Gertrude) và in ra số đốm của chúng,
ta sẽ thấy tác dụng của hàm khởi tạo:
>>> ozwald = Giraffes(100)
>>> gertrude = Giraffes(150)
>>> print(ozwald.giraffe_spots)
100
>>> print(gertrude.giraffe_spots)
150
Cách sử dụng lớp và đối tượng 103