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
Hướng dẫn bài tập
- Thêm một thuộc tính lớp
_MAX_DAYSlư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ềTruenếu thuộc tínhdayvàmonthnhỏ hơn hoặc bằng các giá trị tối đa tương ứng, vàFalsenế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())