別のコンストラクタを追加する
クラスメソッドは、ファイルから読み込む、または異なる情報を受け取り、生成時に処理して必要な属性を返すなど、クラスからオブジェクトを作成する別の手段を提供するのに適しています。
この演習では 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)