所以我对python很新,我正在研究算法而且我已经说过2个函数
func1(x)
func2(x)
已经在主要功能之外定义。
现在我想在主函数中调用这些函数,一个嵌套在另一个
中像这样的东西
def funcmain(func1(func2(x)))
它显然无法正常工作我无论如何都无法让它工作。关于这个的任何提示?
编辑:我的意思是我要输入一个字符串,我希望它首先通过func2,然后从func2返回值通过func1,最后返回值func1通过func main。我已经分别测试了每个功能,它们按预期工作但我似乎无法将它们相互连接在一起
答案 0 :(得分:3)
我希望此代码段有助于为您澄清事情。
#!/usr/bin/python
def func1(x):
return x + 1
def func2(x):
return x + 2
def main(x):
print func1(func2(x))
if __name__ == '__main__':
main(0)
输出为3。
答案 1 :(得分:0)
def funcmain():
return func1(func2(x))
答案 2 :(得分:0)
采取以下功能:
def func1(x):
return x+1
def func2(x):
return x*2
本身你可以这样做:func1(func2(3))
将返回3次2加1.这是有效的,因为它本身func1(func2(3))
实际上返回一个值,而不是一个函数。
但是因为你试图将它作为主函数的基本参数,如下所示:
def main(func1(func2(x))): #dont do this, this is what you did, it is bad
return x*3
它不知道如何处理,因为x ...没有默认值。
你可以做到这一点:def main(x=func1(func2(1)):
return x*3
这会将相应的数学运算为1然后将其指定为x(因为正如我们之前看到的,func1(func2(3))`将返回函数结果而不是函数本身,然后将它乘以3.你默认x等于一个值(即func1(func2(1))
这仍然是不好的做法,因为你违反了func1(func2(1)
出来的任何内容。
你最终想要的是更简单的东西:
def main(x):
y = func1(func2(x))
return y*3
或者甚至可能比那更简单
def main(x):
return x*3
#and then just call it like this
main(func1(func2(1))