python: функция класса возвращает значение, но не может использоваться - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть класс с именем Stone, внутри у меня есть функция с именем return_coordinates (self), которая возвращает координаты камня. Когда я печатаю координаты, я вижу их отлично, но когда я пытаюсь их использовать, он печатает ошибку: TypeError: объект 'module' не вызывается

Вот класс:

class Stone:
    def __init__(self, image, x, y):
        self.image = image
        self.x = x
        self.y = y

    def draw_stone(self):
        image = pygame.image.load(self.image)
        screen.blit(image, (self.x, self.y))

    def return_id(self):
        return self.image.replace("image", "").replace(".png", "")

    def return_coordinates(self):
        return [self.x, self.y]

Теперь я создал несколько объектов класса Stone и сохранил их в списке. Когда я получаю доступ к объекту в списке и пытаюсь использовать его функцию return_coordinates (), он печатает ошибку.

Вот код:

if draw_selected == True:
    coordinates = selected[3].return_coordinates()
    selection_box = pygame.rect(coordinates[0], coordinates[1], 57, 80)
    pygame.draw.rect(screen, [21, 146, 146], selection_box, 2)

, если я печатаю координаты, тогда он печатает список с числовыми значениями, как и положено, но когда я хочу получить доступ к определенной c координате внутри список, как координаты [0], то я получаю ошибку. Весь код находится внутри одного файла.

Есть идеи, как это исправить?

Полное сообщение об ошибке:

Traceback (most recent call last):
File "C:\Users\Gabriel\Desktop\tech\project_m\mahjong.py", line 198, in <module>
selection_box = pygame.rect(coordinates[0], coordinates[1], 57, 80)
TypeError: 'module' object is not callable

1 Ответ

0 голосов
/ 24 апреля 2020

Обратите внимание, что Python является регистрозависимым языком. Ваш код работает с pygame.Rect:

if draw_selected == True:
    coordinates = selected[3].return_coordinates()
    selection_box = pygame.Rect(coordinates[0], coordinates[1], 57, 80)
    pygame.draw.rect(screen, [21, 146, 146], selection_box, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...