Как получить доступ к методу python stati c, который содержит члены экземпляра? - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь изучить методы c stati в python. Вот мой код:

class ABC:
    def __init__(self):
        self.a = 10
        self.b = 20
        self.lst = []

    @staticmethod
    def addNappend(self, c):
        sum = self.a + self.b + c
        self.lst.append(sum)
        print(self.lst)

if __name__ == '__main__':
    ABC.addNappend(30)

Я получаю сообщение об ошибке при запуске кода. [TypeError: addNappend () отсутствует 1 обязательный позиционный аргумент: 'c']

Что нужно изменить? Спасибо всем вам.

1 Ответ

0 голосов
/ 06 августа 2020

Сообщение ясное: для метода требуются два аргумента: объект ABC и другое значение; это позиционные аргументы. Поскольку вы вызвали это как метод class , а не как метод instance , вы должны явно указать объект ABC. На данный момент вам не нужно изменять self; что вы ожидали от этого вызова?

Вместо этого создайте экземпляр объекта и используйте его:

phone_button = ABC()
phone_button.addNappend(30)

Обратите внимание, что это вовсе не связано с тем, чтобы сделать this статическим c методом ... который, кажется, не имеет никакого смысла в этом классе.

...