+ raise KeyError(u'No stat named %s' % stat_name)
+
+ @property
+ def better_damage_class(self):
+ u"""Returns the MoveDamageClass that this Pokémon is best suited for,
+ based on its attack stats.
+
+ If the attack stats are about equal (within 5), returns None. The
+ value None, not the damage class called 'None'.
+ """
+ phys = self.stat(u'Attack')
+ spec = self.stat(u'Special Attack')
+
+ diff = phys.base_stat - spec.base_stat
+
+ if diff > 5:
+ return phys.stat.damage_class
+ elif diff < -5:
+ return spec.stat.damage_class
+ else:
+ return None