Khóa học Phát triển Python Nâng cao
Chương
>
Cấp độ
Các Lớp Nâng Cao
Ghi đè phương thức
Mục tiêu
Đóng chai dầu để nấu thịt bằng cách tạo các đối tượng với các phương thức ghi đè.
Có một ít dầu mà bạn có thể dùng để nấu một số loại rau, nhưng trước hết nó cần được đóng chai để tiện sử dụng. Việc sử dụng các lớp và tạo các đối tượng sẽ là phương pháp hiệu quả để thực hiện điều này, giống như trong cấp độ trước. Tuy nhiên, cũng có những cách tận dụng hiệu quả hơn tính kế thừa của đối tượng trong một lớp, chẳng hạn như làm cho lớp con ghi đè các hàm trong lớp cha.
# Parent Class
class oil_bottle:
label = ""
async def label_bottle(self):
await player.read()
# Child Class
class fill_bottle(oil_bottle):
def fill_bottle(self):
player.place("empty bottle")
player.collect("oilbottle")
async def label_bottle(self):
await player.write(self.label)
Trong đoạn mã trên, lớp con ghi đè hàm label_bottle() trên lớp cha để viết lại nhãn trên các chai. Điều này cũng cho phép bạn đặt một thông điệp tùy chỉnh bằng cách sử dụng các hàm async.
Để bắt đầu, hãy lấy tất cả bốn (4) chai rỗng trên sân, sau khi thu thập xong, đi đến dấu X tối và tạo các đối tượng bằng cách sử dụng các lớp.
Có bốn (4) loại dầu cần được đóng chai, chúng tương ứng với thảm có màu trước các máy: olive_oil được đóng chai trên thảm màu vàng, avocado_oil được đóng chai trên thảm màu xanh lá, canola_oil được đóng chai trên thảm màu xanh dương, và vegetable_oil được đóng chai trên thảm màu đỏ.
Tạo các đối tượng cho từng loại dầu, ghi nhãn của chúng và kích hoạt các hàm của lớp con label_bottle() và fill_bottle(), ví dụ:
olive_oil = fill_bottle() olive_oil.label = "Olive Oil" olive_oil.label_bottle() olive_oil.fill_bottle()
Mỗi nhãn nên chứa tên viết hoa của từng loại dầu như sau: "Olive Oil", "Avocado Oil", "Canola Oil" và "Vegetable Oil".
Sau khi đóng chai các loại dầu, hãy đi đến dấu X sáng ở phía trước một bao và sử dụng hàm collect() để lấy "onion" từ bao. Sau đó, đi đến dấu X vàng và sử dụng dầu để nấu hành tây bằng cách lưu chúng cùng nhau trong một danh sách có tên ingredients, như sau: ingredients = ["Olive Oil", "onion"]. Sử dụng hàm place() với danh sách để nấu các nguyên liệu.
Cuối cùng, đặt các loại dầu còn lại vào một danh sách có tên oils, như sau: oils = ["Avocado Oil", "Canola Oil", "Vegetable Oil"]. Đi đến dấu X sáng trên thảm màu tím, hướng về phía tủ và sử dụng hàm place() với danh sách dầu để lưu trữ các vật dụng trong tủ và hoàn thành cấp độ.