首页 > 解决方案 > 将变量传递给另一个 DEF

问题描述

我正在写一个类似于这个的类我如何将值(w,v)传递给 def q func

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)

标签: pythonfunctionsumparameter-passing

解决方案


首先,如果您正确格式化代码,如下所示:

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))

推荐阅读