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 Boards

Jonatan Witoszek
Jonatan Witoszek
15,384 Points

__iter__ method for all Board instances

I'm having problem to implement iter method in challenge make all Board instances iterable... I have tried the same method as shown in the Emulating Built-ins video previously in this course.

boards.py
class Board:
    def __init__(self, width, height):
        self.width = width
        self.height = height
        self.cells = []
        for y in range(self.height):
            for x in range(self.width):
                self.cells.append((x, y))

        def __iter__(self):
            for item in self.cells:
                yield item

class TicTacToe(Board):
    def __init__(self):
        super().__init__(3, 3)

1 Answer

Jonatan Witoszek
Jonatan Witoszek
15,384 Points

I guess that I have figured it out... I just put the

def __iter__(self):
   for item in self.cells:
      yield item

method in the TicTacToe class and it worked.

The question is why the previous solution didn't work? Shouldn't the iter method be inherited by the subclass?