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 Compare and Contrast

Garrett Hughes
seal-mask
.a{fill-rule:evenodd;}techdegree
Garrett Hughes
Python Development Techdegree Student 32,971 Points

What am I missing here? (Compare and Contrast)

I feel like I've done what the challenge is asking me to do. I've tried changing values around but I can't figure out how to pass it. Could someone help me out, please?

songs.py
class Song:
    def __init__(self, artist, title, length):
        self.artist = artist
        self.title = title
        self.length = length

    def __int__(self):
        return self.value

    def __eq__(self, other):
        return int(self) == other

    def __lt__(self, other);
        return int(self) < other

    def __gt__(self,other):
        return int(self) > other

    def __le__(self, other):
        return int(self) < other or int(self) == other

    def __ge__(self, other):
        return int(self) > other or int(self) == other

1 Answer

Moosa Bonomali
Moosa Bonomali
6,297 Points

Since you would then want to compare the length of the songs, your int method should rather return the length of the Song. Following on your code, here's is the amended code;

class Song:
    def __init__(self, artist, title, length):
        self.artist = artist
        self.title = title
        self.length = length

    #return the length of the song
    def __int__(self):
        return self.length

    def __eq__(self, other):
        return int(self) == other

    def __lt__(self, other):
        return int(self) < other

    def __gt__(self,other):
        return int(self) > other

    def __le__(self, other):
        return int(self) < other or int(self) == other

    def __ge__(self, other):
        return int(self) > other or int(self) == other