始める無料で始める

別のコンストラクタを追加する

クラスメソッドは、ファイルから読み込む、または異なる情報を受け取り、生成時に処理して必要な属性を返すなど、クラスからオブジェクトを作成する別の手段を提供するのに適しています。

この演習では Person クラスを使います。コンストラクタは初期化時に名前と年齢を受け取ります。ここにクラスメソッドを追加し、名前と生年を渡して初期化できるようにし、そのメソッド内で生年から年齢を計算します。

この演習はコースの一部です

Pythonによるオブジェクト指向プログラミング入門

コースを見る

演習の手順

  • クラスメソッド用のデコレータを追加します。
  • from_birth_year() クラスメソッドを定義します。引数は3つで、クラスを参照する慣例的な特別引数、namebirth_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)
コードを編集して実行