Задать вопрос
@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 работает нормально.
  • Вопрос задан
  • 63 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы