Scorpion_MB
@Scorpion_MB
Изучаю Питон

Почему питон ругается на аргумент?

Добрый день!
Всю голову сломал, вроде все правильно делаю. Получаю объект (sh) и передаю его в функцию (метод класса), но почему то ругается на позиционный аргумент:
6083caa63349b097417761.jpeg

Вот код:
def receive_shot(self):
        sx = self.x
        sy = self.y
        radar.count_shot += 1

        if type(temp.board[sx][sy]) == Ship:
            sh = temp.board[sx][sy]
            sh.len_ship -= 1


            if sh.len_ship <= 0:
                Board.mark_destroyed_ship(sh)
                return sh

            radar.board[sx][sy] = Cell.damaged_ship
            return 'get'

        else:
            radar.board[sx][sy] = Cell.miss_cell
            return 'miss'


Метод (вернее его начало, чтобы не загромаждать):
def mark_destroyed_ship(self, sh):

        field = radar.board

        x, y = sh.x, sh.y
        width, height = sh.width, sh.height


Что я делаю не так?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Метод надо вызывать у объекта, а не класса.
Ответ написан
@o5a
Board - сам класс. Для обращения к самому экземпляру класса (созданному объекту) нужно использовать self.
т.е. нужно вызывать не
Board.mark_destroyed_ship(sh)
а
self.mark_destroyed_ship(sh)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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