Задать вопрос
@Slavkha

Почему возникает ошибка «missing 1 required positional argument: 'self'»?

Написал класс с функцией - добавляешь шарик и при нажатии на него он меняется (заменяется картинка):

class Baloon():
    def __init__(self, screen, image, change_image, rect_image):
        self.screen = screen
        self.cout = 0
        self.image = image
        self.change_image = change_image
        self.rect_image = rect_image
        self.list = [image, change_image]
        self.screen.blit(self.list[self.cout], self.rect_image)

    def cheng_baloon(self):
        if self.cout !=1:
            self.cout += 1

В главном цикле поставил Baloon(screen, baloon[0], baloon[1], rect_baloon) - шарик отрисовывается.
А при нажатии на шар Baloon.cheng_baloon() выдаёт ошибку:

TypeError: Baloon.cheng_baloon() missing 1 required positional argument: 'self'

Функция просит аргумент, но функция без аргумента.
Что не так?
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Slavkha, открой для себя тэг "Исходный код". Без него глазам больно.
По делу - cheng_baloon нужно вызывать из объекта, а не из класса.
Должно быть примерно так:
baloon = Baloon(screen, baloon[0], baloon[1], rect_baloon) 
...
baloon.cheng_baloon()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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