FizzBuzzとの3か月(22)
お世話になっております。
今日は、Pythonに戻ります。
オブジェクト指向の特徴の一つである、継承を使ってみました。
以下、コードです。
class FizzBuzzNumber(int): def __init__(self, value): int.__init__(value) 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__()) for i in range(1, 101): print(FizzBuzzNumber(i))
intを継承したFizzBuzzNumberクラスを作り、文字列表現を返す__str__メソッドをオーバーライドしています。
intを継承しているので、普通に足し算や引き算ができます。
ただし、足し算や引き算の戻り値はただのintですから、3の倍数や5の倍数になっても、数字が表示されるだけです。
継承を使うと、簡単に高機能なクラスを作れますが、スーパークラスをよく理解しておかないと、奇妙なバグに出くわしてしまいます。
以上