передача переменных в другой DEF - PullRequest
0 голосов
/ 05 апреля 2020

Я пишу класс, похожий на этот, как я могу передать значения (w, v) в def q fun c

class A():
def EM (self,a,b):
self.a=a
self.b=b
w=a+b
print(w)
def number(self,c,d):
self.c=c
self.d=d
v=c-d
print(d)
def q (self,v,w)    ##problrm here 
qq=v+w
print(qq)

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Во-первых, это помогает, если вы правильно отформатировали свой код, как показано:

class A():
    def EM (self,a,b):
        self.a=a
        self.b=b
        w=a+b
        print(w)
     def number(self,c,d):
        self.c=c
        self.d=d
        v=c-d
        print(d)
     def q (self,v,w)    ##problrm here 
        qq=v+w
        print(qq)

Но чтобы ответить на ваш вопрос, вы бы использовали результаты для EM и number, как показано

instance = A()
result = instance.q(instance.EM(a, b), instance.number(c, d))

Поскольку вы хотите использовать результаты нескольких методов в качестве параметров, вы должны сделать это вне этих методов, хотя вы можете создать новый метод, чтобы он выглядел лучше, как

class A():
    def EM (self,a,b):
        self.a=a
        self.b=b
        w=a+b
        return w
     def number(self,c,d):
        self.c=c
        self.d=d
        v=c-d
        return d
     def q (self,v,w)
        qq=v+w
        return qq
     def doThisThing(a, b, c, d):
        return self.q(self.EM(a, b), self.number(c, d))

Обратите внимание, как я изменился возвращает в печать, поскольку вместо отображения результата на консоли мы хотим передать результат вызывающей стороне. Если вы хотите отобразить результат, вы можете использовать

print(instance.doThisThing(a, b, c, d))
0 голосов
/ 05 апреля 2020

Попробуйте это:

a = A()
a.q(w= '''w''',v= '''v''')
...