Xây dựng lớp BetterDate
Bạn đang phát triển một gói time series và muốn định nghĩa lớp riêng để làm việc với ngày tháng, BetterDate.
Các thuộc tính của lớp sẽ là year, month và day. Bạn muốn có một constructor để tạo đối tượng BetterDate khi truyền vào year, month và day, đồng thời cũng muốn có khả năng tạo đối tượng BetterDate từ chuỗi, chẳng hạn 2021-04-30.
Bài tập này là một phần của khóa học
Nhập môn Lập trình Hướng đối tượng với Python
Hướng dẫn bài tập
- Định nghĩa class method tên
from_str(), cung cấp đối số đặc biệt bắt buộc và một đối số khác têndatestr. - Tách
datestrbằng dấu gạch ngang"-"và lưu kết quả vào biếnparts. - Trả về
year,monthvàday, theo đúng thứ tự đó, dùng từ khóa cũng sẽ gọi__init__(). - Tạo biến
xmasbằng phương thức.from_str()của lớp, truyền vào chuỗi"2024-12-25".
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.
class BetterDate:
def __init__(self, year, month, day):
self.year, self.month, self.day = year, month, day
# Define a class method from_str
____
____
# Split the string at "-"
parts = datestr.____("____")
year, month, day = int(parts[0]), int(parts[1]), int(parts[2])
# Return the class instance
____ ____(____, ____, ____)
# Create the xmas object
xmas = ____.____("____")
print(xmas.year)
print(xmas.month)
print(xmas.day)