Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Warrior parent class + class atributes solution in Clear category for Army Units by Rcp8jzd
class Warrior:
def __init__(self, specific_unit_name, name, origin):
self.specific_unit_name = specific_unit_name
self.name = name
self.origin = origin
def introduce(self):
return f'{self.specific_unit_name} {self.name}, {self.origin} ' \
f'{self.generic_unit_name}'
class Swordsman(Warrior):
generic_unit_name = 'swordsman'
class Lancer(Warrior):
generic_unit_name = 'lancer'
class Archer(Warrior):
generic_unit_name = 'archer'
class Army:
@classmethod
def train_swordsman(cls, name):
return Swordsman(specific_unit_name=cls.army_units['swordsman'], name=name,
origin=cls.origin)
@classmethod
def train_lancer(cls, name):
return Lancer(specific_unit_name=cls.army_units['lancer'], name=name,
origin=cls.origin)
@classmethod
def train_archer(cls, name):
return Archer(specific_unit_name=cls.army_units['archer'],
name=name, origin=cls.origin)
class EuropeanArmy(Army):
origin = 'European'
army_units = {'swordsman': 'Knight', 'lancer': 'Raubritter', 'archer':
'Ranger'}
class AsianArmy(Army):
origin = 'Asian'
army_units = {'swordsman': 'Samurai', 'lancer': 'Ronin', 'archer':
'Shinobi'}
Dec. 1, 2020