Использование self и передача переменных - PullRequest
0 голосов
/ 21 марта 2020

Это так элементарно, но я не понимаю, почему я продолжаю получать «Я не определен». Как передать переменные, которые будут использоваться несколькими методами, и вывести возвращаемое значение?

class math:
    def __init__(self,x,y):
       self.x = x
       self.y = y
    def add(self):
       return self.x + self.y
x = int(input("first number: "))
y = int(input("second number: "))
print(math.add(x,y))

Ответы [ 2 ]

2 голосов
/ 21 марта 2020

Вы должны создать экземпляр своего класса, используйте: math()

print(math(x, y).add())
1 голос
/ 21 марта 2020

self не является специальным ключевым словом. Это просто передается автоматически, если вы вызываете свою функцию как метод для объекта.

например, если вы создали свой объект (я прописал имя класса в соответствии с Python стандартами)

class Math:
    def __init__(self, x, y):
       self.x = x
       self.y = y
    def add(self):
       return self.x + self.y

math = Math(x, y)

тогда следующее эквивалентно:

math.add()
Math.add(math)

То, что вы делали, вызывало

Math.add(x, y)

, что недопустимо, поскольку Math.add принимает только один аргумент (экземпляр Math).

...