Как я могу суммировать значения двух функций? - PullRequest
0 голосов
/ 05 марта 2020

У меня есть два класса. В классе BI нужно изменить значения переменных в классе A, которые определены в функциях: some и anyt, с помощью функций класса B: лягушка и лев. Например, я умножаю на 2 или 3 ..

Я получаю ошибку:

 File "E:/Python/Akustik/Akustik/Test.py", line 20
    A.some(a,b,c)  = A.some(a,b,c)* 2
    ^
SyntaxError: can't assign to function call

Я знаю, что это значит, но я не могу обойтись без функций в классе A и Б, у кого-нибудь есть чаевые?

вот код:

class A:

    def some(self,a, b, c):

        self.a = 4
        self.b = 2
        self.c = 3

    def anyt(self, p, g, f):

        self.p = 5
        self.g = 8
        self.f = 1


class B(A):

    def frog(self):

        A.some(a,b,c)  = A.some(a,b,c)* 2


    def lion(self):

        A.anyt(p,g,f)= A.anyt(p,g,f) * 3

1 Ответ

3 голосов
/ 05 марта 2020

Вы не можете присвоить значение выражения вызову функции. В вашем случае, если вы хотите изменить значение переменных a, b, c, p, q, r. Вам нужно будет сделать что-то вроде этого.

class A:

    def __init__(self):

        self.a = 1
        self.b = 1
        self.c = 1
        self.p = 1
        self.q = 1
        self.r = 1


    def some(self,a, b, c):

        self.a = a
        self.b = b
        self.c = c

    def anyt(self, p, g, f):

        self.p = p
        self.g = g
        self.f = f


class B(A):

    def frog(self):

        self.some(self.a*2, self.b*2, self.c*2)


    def lion(self):

        self.anyt(self.p*3, self.g*3, self.f*3)

b = B()
b.frog()
print(b.c)
# Prints current value of c

Это обеспечит изменение соответствующих значений переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...