[英]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.