FizzBuzzとの3か月(23)

お世話になっております。

今日は、昨日の続きです。
FizzBuzzNumberクラスの__add__メソッドをオーバーライドし、計算結果をFizzBuzzNumberクラスのインスタンスとして返すようにしました。

以下、コードです。

class FizzBuzzNumber(int):
  def __init__(self, value):
    int.__init__(value)

  def __add__(self, other):
    return FizzBuzzNumber(int.__add__(self, other))

  def __str__(self):
    if 0 == self % 3 and 0 == self % 5:
      return 'FizzBuzz'
    elif 0 == self % 3:
      return 'Fizz'
    elif 0 == self % 5:
      return 'Buzz'
    else:
      return str(self.__int__())

num = FizzBuzzNumber(0)
while num < 100:
  num += 1
  print(num)

1から100まで出力するループでは、FizzBuzzNumberを全く気にしていないのがポイントです。

以上