Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
execf solution in Creative category for Army Units by veky
class Army:
for who in 'swordsman lancer archer'.split():
exec(f"def train_{who}(army, name): return {who.title()}(army, name, '{who}')")
def descent(army): return type(army).__name__.removesuffix('Army')
@__import__('dataclasses').dataclass
class Soldier:
for field in 'army name category'.split(): exec(f'{field}: str')
def __post_init__(s): s.title = getattr(s.army, s.category)
def introduce(s): return f'{s.title} {s.name}, {s.army.descent()} {s.category}'
for who in 'swordsman lancer archer'.split(): exec(f"class {who.title()}(Soldier): pass")
class AsianArmy(Army): swordsman, lancer, archer = 'Samurai', 'Ronin', 'Shinobi'
class EuropeanArmy(Army): swordsman, lancer, archer = 'Knight', 'Raubritter', 'Ranger'
Dec. 24, 2021
Comments: