Quote:class Hero(Character): def __init__(self): super().__init__(name=player_name, health=3) class Enemy(Character): def __init__(self): super().__init__(name=enemy.name, health = 2)
player_name
and enemy.name
don't exist yet, so they can't be used as default values for the variables. But since you always name them anyway, you don't need defaults. So just getting rid of that bit would solve that particular issue.ie:
class Hero(Character): def __init__(self, name, health=3): super().__init__(name, health) class Enemy(Character): def __init__(self, name, health=2): super().__init__(name, health)