開始使用免費開始

新增另類建構子

類別方法能提供以另一種方式從類別建立物件,例如從檔案建立,或是接受不同的資訊並在建構過程中先執行計算,再回傳所需的屬性。

在這個練習中,你會使用 Person 類別。它的建構子在初始化時需要提供名稱與年齡。你將新增一個類別方法,讓你可以透過提供名稱與出生年份來初始化,方法會根據出生年份計算年齡。

本練習屬於課程

Python 物件導向程式設計入門

檢視課程

練習說明

  • 加上類別方法的裝飾器。
  • 定義 from_birth_year() 類別方法,接受 3 個引數:作為指向類別的特殊慣例參數、name,以及 birth_year
  • 在方法中,計算類別屬性 CURRENT_YEARbirth_year 的差,建立變數 age
  • 回傳類別的 nameage 屬性。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

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)
編輯並執行程式碼