Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Object-Oriented Python Dice Roller RPG Roller

Leah Miller
Leah Miller
16,291 Points

Dont know what I did wrong dice.py

From what I understand I have met all requirements. Let me know what I am missing! Thanks

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, value=0):
        super().__init__(sides=20, value=value)
class Hand(list):
    def total(self):
        return sum(self)

1 Answer

Darryl Mah
Darryl Mah
5,492 Points

A little tricky one.

For your __init__ on the D20 class, you don’t want to provide any additional arguments needed to run the function.

def __init__(self) is all you’ll need.

For your super(), since the parent class only has one argument you’ll just want to pass the default value you’ll want into this argument.


And you’ll be all set! :)

[MOD: added ` escaping for code strings -cf]

Chris Freeman
Chris Freeman
Treehouse Moderator 68,423 Points

Darryl Mah, I've added the escape backtick character ` (left of the 1 on most keyboards). This markdown implies the enclosed text should be shown as monospaced characters and ignores other markdown within (like underscores of __init__).