@nihi1ist

Почему не работает метод из экземпляра класса?

Есть два класса Cell и Board. В Board создается список с экземплярами Cell.
Код
class Cell:
    def __init__(self, index=0):
        self.state = cell_states[index]

    def is_empty(self):
        if self.state == ' ':
            return True
        else:
            return False


class Board:
    def __init__(self):
        self.cells = {index: Cell() for index in range(1, 10)}

    def check_empty_cells(self):
        if any([item.is_empty for item in self.cells.values()]):
            return True
        else:
            return False


cell_states = [' ', 'x', 'o']

game = Board()
for cell in game.cells.values():
    cell.state = cell_states[1]
    print(cell.is_empty)

cell_1 = Cell()
print(cell_1.is_empty())
cell_1.state = cell_states[1]
print(cell_1.is_empty())

if game.check_empty_cells():
    print('Свободные ячейки есть.')
else:
    print('Свободных ячеек нет.')
Подскажите, почему не работает метод is_empty класса Cell когда вызывается в методе check_empty_cells класса Board. По идее должен получится список с вариациями True и False. Но в итоге получается список с такими элементами:
spoiler
<bound method Cell.is_empty of <__main__.Cell object at 0x7fde96b53a30>>
Когда создаешь единичный экземпляр Cell метод is_empty работает нормально.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы