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

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 nameage 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

Xem khóa học

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 age bằng cách tính hiệu giữa thuộc tính lớp CURRENT_YEARbirth_year.
  • Trả về các thuộc tính nameage củ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)
Chỉnh sửa và Chạy Mã