Thêm một constructor thay thế
Class method là cách tuyệt vời để cung cấp một con đường khác để tạo đối tượng từ một lớp, chẳng hạn từ một tệp hoặc bằng cách nhận thông tin khác và thực hiện một tác vụ trong lúc khởi tạo để trả về các thuộc tính cần thiết.
Trong bài tập này, bạn sẽ làm việc với lớp Person. Constructor hiện nhận name và age khi khởi tạo. Bạn sẽ thêm một class method cho phép khởi tạo bằng cách cung cấp name và năm sinh (birth_year), trong đó phương thức sẽ tính age từ năm sinh.
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
- Thêm decorator cho class method.
- Định nghĩa class method
from_birth_year(), nhận ba tham số: từ khóa thông dụng dùng làm tham số đặc biệt tham chiếu đến lớp,name, vàbirth_year. - Bên trong phương thức, tạo biến
agebằng cách tính hiệu giữa thuộc tính lớpCURRENT_YEARvàbirth_year. - Trả về các thuộc tính
namevàagecủa lớp.
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 Person:
CURRENT_YEAR = 2024
def __init__(self, name, age):
self.name = name
self.age = age
# Add a class method decorator
____
# Define the from_birth_year method
def ____(____, ____, ____):
# Create age
age = ____.____ - ____
# Return the name and age
return ____(____, ____)
bob = Person.from_birth_year("Bob", 1990)