Já que acabaste por criar uma classe para criar os pokémons, em vez de armazerar os dados em atributes criaria um atributo para cada dado para ser guardado:
class Pokemon:
def __init__(self, name, atk, defense, hp, speed):
self.name = name
self.Attack = atk
self.Defense = defense
self.HP = hp
self.Speed = speed
pokemon = Pokemon(Bulbasaur, 49, 49, 45, 45)
Assim para acessar os dados passamos depokemon.atributes["Attack"]
parapokemon.Attack
.
Só uma sugestão, na mesma um bom trabalho e espero que aprendas bastante com este projeto.
Com certeza, a única coisa que poderia ser diferente na sua sugestão é que, ao invés de passar cada atributo como prop, apenas desestruturar no init:
class Pokemon:
def __init__(self, name, attibutes):
self.name = name
for attr_key, attr_value in attributes.items():
# Example: self.HP = attributes["HP"]
self.__dict__[attr_key] = attr_value
Desse jeito não ficaria tão verboso e facilitaria na hora de implementar novos atributos.
Por acaso não sabia que se podia fazer assim, muito massa