python3:依赖于其他函数的函数,缺少参数?

2024-04-26 23:50:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个函数,后者取决于第一个函数的结果。 它们都是使用浮点数的数学函数。在

这两个功能的要点是:

def function1(a,aa,b,bb):
    # get result z from a and b
    # get error in result, zz, from raw errors, aa and bb
    print (z,zz)

def function2(z,zz,c,cc):
    # get result x from z and c
    # get error in result, xx, from zz and cc
    print (x,xx)

a,b,c是函数外定义的被测变量 aa、bb和c是测量变量中的误差,也在函数之外定义。在

定义函数后,我编写以下命令:

^{pr2}$

我希望函数1将产生两个结果(z,zz),它们将被接受为函数2的前两个参数。在

相反,我得到错误“TypeError:function2()缺少1个必需的位置参数:'cc'

所以我假设函数1最后只产生一个结果。我怎么解决这个问题?在

完整代码:http://tinyurl.com/sof-typeerror


Tags: and函数infromget定义deferror
1条回答
网友
1楼 · 发布于 2024-04-26 23:50:25

如果函数返回多个参数,则这些参数将被压缩到元组中。您应该解压带*返回的参数,将它们作为参数传递给另一个函数。但是,作为惯例,你不能把任何东西作为第一个论点来解压,所以,我还是建议如下。在

function2( *(function1(a,aa,b,bb) + (c, cc)) ) # would work

function2(*function1(a,aa,b,bb),c,cc)          # won't work

如果您真正感兴趣的是为什么后者不起作用,或者为什么要使用约定,那么请访问-http://www.python.org/dev/peps/pep-3132/Unpacking arguments: only named arguments may follow *expression

另外,正如评论中建议的那样,您应该return参数,而不仅仅是打印它们。像下面这样。在

^{pr2}$

相关问题 更多 >