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 (retired) Objects Create a Class with a Method

Tim Burgess
Tim Burgess
2,552 Points

Object-oriented Python example

What is wrong with this code? It fails to pass the test however when I run it in the Python 2.7 interpreter, it works fine.

class Store(object):
    open = 9
    close = 16

    def hours(self):
        return "We're open from {0} to {0}".format(self.open,self.close)

3 Answers

Chris Shaw
Chris Shaw
26,676 Points

Hi Tim,

You have a couple of problems with your return string which is causing the issues.

  1. You have set {0} when instead you just want {} as you only need to define alphanumeric values when unpacking data
  2. You have left off the full stop at the end of the string.
return "We're open from {} to {}.".format(self.open, self.close)

Hope that helps.

You don't need to add object to your Store declaration, as it's implied. So you can just do this:

class Store():
    open = 9
    close = 16

    def hours(self):
        return "We're open from {} to {}".format(self.open,self.close)

store = Store()
print(store.hours())
Tim Burgess
Tim Burgess
2,552 Points

Thanks guys.

@Ryan, is object implied for only Python 3? I'm working almost completely in Python 2.7.

And if it is implied, should I not be able to do simply <code>class Store:</code>?

Durrr, you're right, sorry. It'd just be:

class Store:

Sorry!