BetterDate クラスを作る
時系列パッケージを開発しており、日付を扱うための独自クラス BetterDate を定義したいとします。
このクラスの属性は year、month、day です。年・月・日を受け取って BetterDate オブジェクトを生成するコンストラクタに加えて、2021-04-30 のような文字列からも BetterDate オブジェクトを作成できるようにしたいです。
この演習はコースの一部です
Pythonによるオブジェクト指向プログラミング入門
演習の手順
from_str()というクラスメソッドを定義し、必須の特別な引数と、datestrという引数を受け取るようにします。datestrをハイフン"-"で分割し、結果を変数partsに保存します。- キーワードを使って
__init__()も呼び出されるようにしつつ、year、month、dayの順で返します。 - クラスの
.from_str()メソッドを使って、文字列"2024-12-25"を与え、変数xmasを作成します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
class BetterDate:
def __init__(self, year, month, day):
self.year, self.month, self.day = year, month, day
# Define a class method from_str
____
____
# Split the string at "-"
parts = datestr.____("____")
year, month, day = int(parts[0]), int(parts[1]), int(parts[2])
# Return the class instance
____ ____(____, ____, ____)
# Create the xmas object
xmas = ____.____("____")
print(xmas.year)
print(xmas.month)
print(xmas.day)