class Box: def __init__(self, item): self.item = item def open(self): print("宝箱を開いた。" + self.item + "を手に入れた。") class JewelryBox(Box): def look(self): print("宝箱はキラキラと輝いている。") box = Box("鋼鉄の剣") box.open() jewelrybox = JewelryBox("魔法の指輪") jewelrybox.look() jewelrybox.open() class Player: def __init__(self, name): self.name = name def attack(self, enemy): print(self.name + "は、" + enemy + "を攻撃した!") print("=== パーティーでスライムと戦う ===") hero = Player("勇者") # hero.attack("スライム") warrior = Player("戦士") party = [hero, warrior] for member in party: member.attack("スライム") class Player: __charactor_count = 0 @classmethod def summary(cls): print(str(Player.__charactor_count) + "人で、スライムを攻撃した。") def __init__(self, name): self.name = name Player.__charactor_count += 1 print(str(Player.__charactor_count) + "番目のプレイヤー、" + self.name + "が登場した。") def attack(self, enemy): print(self.name + "は、" + enemy + "を攻撃した!") class Wizard(Player): def __init__(self): super().__init__("魔法使い") def attack(self, enemy): self.__spell() print(self.name + "は、" + enemy + "に炎を放った!") def __spell(self): print("ズバーン!") print("=== パーティーでスライムと戦う ===") hero = Player("勇者") warrior = Player("戦士") wizard = Wizard() party = [hero, warrior, wizard] for member in party: member.attack("スライム") Player.summary()