Page 120 - Em Học Python
P. 120
Những đặc trưng này có thể hiểu tạm là các hành vi hoặc các chức năng — là những
thứ một đối tượng thuộc một lớp có thể làm được.
Để viết hàm cho lớp, ta cũng dùng từ khóa def. Cho nên lớp Animals lúc này sẽ
thành:
>>> class Animals(Animate):
def breathe(self):
pass
def move(self):
pass
def eat_food(self):
pass
Dòng đầu tiên được dùng để định nghĩa lớp, ta đã làm lúc nãy rồi,
nhưng ở dòng sau, thay vì dùng từ khóa pass, ta đặt ra một hàm tên là
breathe (thở) và đưa vào một tham số: self. self là cách để một hàm có
thể gọi hàm khác trong cùng một lớp (và lớp cha). Ta sẽ gặp lại tham số
này ở cuối chương.
Ở dòng sau đó, từ khóa pass là để nói rằng ta không có ý định viết thêm gì vào hàm
breathe nữa, vì hàm lúc này sẽ không làm gì hết. Tương tự như thế, ta viết thêm hàm move
(đi) và eat_food (ăn), cũng ngồi chơi không như thế. Sắp tới ta sẽ sửa lại mấy lớp này và sẽ
viết code chuẩn vào hàm sau. Đây là cách lập trình khá phổ biến. Thường thì lập trình viên
sẽ tạo ra lớp với các hàm trống như thế trước để hình dung ra các lớp sẽ hoạt động như thế
nào, rồi mới viết code cụ thể cho từng hàm sau.
Ta cũng sẽ viết thêm vài hàm cho hai lớp còn lại là Mammals và Giraffes. Các lớp
này cũng có những đặc trưng (tức là có thể chạy được các hàm) của các lớp cha. Như vậy,
em không cần phải tạo ra một lớp siêu phức tạp; mà chỉ cần xác định một đặc điểm nằm ở
lớp nào chung nhất (và cao nhất) rồi đặt hàm cần thiết vào lớp đó là được. (Bằng cách sắp
xếp như thế, các lớp của em sẽ trở nên đơn giản và dễ hiểu hơn.)
94 Chương 8