Python Object-Oriented Python Dice Roller RPG Roller

Shawna Kervin
Shawna Kervin
3,219 Points

Error: Can't import D20

I keep getting "Can't import D20 when I check my work. I'm not sure what's going wrong. When I look at answers to others' questions, I'm not seeing a difference in the first line of code "from dice import D20". Is the error happening in another line?

dice.py
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):
            super().__init__(sides=20)
hands.py
from dice import D20 

class Hand(list):

    def __init__(self, size=0, die_class=D20):
        self.size = size
        super().__init__()
        for _ in range(size):
            self.append(die_class())

    @classmethod
    def roll(cls, size=2):
        return cls(size)

    @property
    def total(self):
        return sum(self)

1 Answer

ThatOneCoder -
ThatOneCoder -
6,687 Points

Well when I ran your code, everything was fine! it passed! So i'm not sure what the problem is, it could be a bug only for you or something else.