質問: User("c") User.show_info() #出力結果: 3 instance ```
回答: 例えばCarというクラスを考えます。自動車です。 私の車は30万円ですが、 あなたの車は100万円で、 隣の車は500万円かもしれません。 車のインスタンスごとに違うものはインスタンス変数に入れないといけませんが、車といえば普通タイヤの数は4つです。それはあなたの車も隣の車も私の車と同じ4つです。 このように、クラスさえ決まってしまえば、インスタンスごとに違わないものをクラス変数とし、クラスから直接使えるようにしたのがクラスメソッドで@classmethodデコレータです。 今説明した内容をコードにしたのが↓ ``` class Car: countOfWheel = 4 def __init__(self, value): self.value = value def howMuch(self): return self.value @classmethod def getCountOfWheel(cls): return cls.countOfWheel myCar = Car(300000) yourCar = Car(1000000) nextCar = Car(5000000) print("私の車は" + str(myCar.howMuch()) + "円です。") print("あなたの車は" + str(yourCar.howMuch()) + "円です。") print("隣の車は" + str(nextCar.howMuch()) + "円です。") print("私の車のタイヤの数は" + str(myCar.getCountOfWheel()) + "です。") print("あなたの車のタイヤの数は" + str(yourCar.getCountOfWheel()) + "です。") print("隣の車のタイヤの数は" + str(nextCar.getCountOfWheel()) + "です。") print("車のタイヤの数は" + str(Car.getCountOfWheel()) + "です。") ```