新增另類建構子
類別方法能提供以另一種方式從類別建立物件,例如從檔案建立,或是接受不同的資訊並在建構過程中先執行計算,再回傳所需的屬性。
在這個練習中,你會使用 Person 類別。它的建構子在初始化時需要提供名稱與年齡。你將新增一個類別方法,讓你可以透過提供名稱與出生年份來初始化,方法會根據出生年份計算年齡。
本練習屬於課程
Python 物件導向程式設計入門
練習說明
- 加上類別方法的裝飾器。
- 定義
from_birth_year()類別方法,接受 3 個引數:作為指向類別的特殊慣例參數、name,以及birth_year。 - 在方法中,計算類別屬性
CURRENT_YEAR與birth_year的差,建立變數age。 - 回傳類別的
name與age屬性。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
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)