Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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