繁体   English   中英

Python 3:依赖其他函数的函数,缺少参数?

[英]Python 3: Functions dependent on other functions, missing parameter?

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

这两个功能的要点是:

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是在函数外部定义的测量变量中的误差。

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

function2(function1(a,aa,b,bb),c,cc)

我希望function1会产生两个结果(z,zz),并且它们将被接受为function2的前两个参数。

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

因此,我假设function1最后只产生一个结果。 我该如何解决?

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

如果您的函数返回多个参数,则这些参数将打包到一个元组中。 您应该解压缩带有*返回参数,以将它们作为参数传递给另一个函数。 但是,按照惯例,您不能将任何内容解压缩为第一个参数,因此,我建议以下内容。

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/开箱参数:只有命名的参数可以遵循*表达

另外,如注释中所建议,您应该return参数,而不仅仅是打印它们。 像下面。

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)
    return 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)
    return x, xx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM