Bắt đầu ngayBắt đầu miễn phí

Sử dụng thuộc tính nội bộ

Trong bài này, bạn sẽ quay lại lớp BetterDate ở Chương 2.

Bạn quyết định thêm một phương thức để kiểm tra tính hợp lệ của ngày tháng, nhưng bạn không muốn biến nó thành một phần của giao diện công khai của BetterDate.

Lớp BetterDate có sẵn trong khung mã.

Bài tập này là một phần của khóa học

Lập trình hướng đối tượng trong Python

Xem khóa học

Hướng dẫn bài tập

  • Thêm một thuộc tính lớp _MAX_DAYS lưu số ngày tối đa trong một tháng - 31.
  • Thêm một thuộc tính lớp khác lưu số tháng tối đa trong một năm - 12. Dùng quy ước đặt tên phù hợp để thể hiện đây là thuộc tính nội bộ.
  • Thêm phương thức _is_valid() trả về True nếu thuộc tính daymonth nhỏ hơn hoặc bằng các giá trị tối đa tương ứng, và False nếu không. Hãy chắc chắn tham chiếu đến các thuộc tính lớp bằng chính tên của chúng!

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# Add class attributes for max number of days and months
class BetterDate:
    ____
    
    def __init__(self, year, month, day):
        self.year, self.month, self.day = year, month, day
        
    @classmethod
    def from_str(cls, datestr):
        year, month, day = map(int, datestr.split("-"))
        return cls(year, month, day)
    
    # Add _is_valid() checking day and month values
    ____
    
bd1 = BetterDate(2020, 4, 30)
print(bd1._is_valid())

bd2 = BetterDate(2020, 6, 45)
print(bd2._is_valid())
Chỉnh sửa và Chạy Mã