Nicholas Abate1,643 Points
Can anyone explain what I'm missing in the hands.py script? I haven't been given any hints. My thought is that it has something to do with how the results are being returned.
import random class Die: def __init__(self, sides=2): if sides < 2: raise ValueError("Can't have fewer than two sides") self.sides = sides self.value = random.randint(1, sides) def __int__(self): return self.value def __add__(self, other): return int(self) + other def __radd__(self, other): return self + other class D20(Die): def __init__(self, sides = 20): super().__init__(sides = sides)
from dice import Die from dice import D20 class Hand(list): def __init__(self): super().__init__() def __repr__(self): return str(self.value) @property def total(self): return sum(self) @classmethod def roll(cls, number): die =  for _ in range(number): die.append(D20()) return die
Steven Parker201,997 Points
It looks like you've implemented some stuff not asked for in the instructions. You may need to remove the "extras".
But the "roll" method should return an instance of "Hand" instead of an ordinary list.