2010-04-22 129 views
-1

我有一个函数,我们将其称为funcA,它返回一个对象。我想将该对象传递给funcB。我可以这样做吗?函数参数调用函数

funcB(funcA()); 

使funcA()被称为第一,并将结果传递给funcB()

+8

其他人认为这将是更快的测试比发布的问题? – 2010-04-22 03:34:35

+0

我到底在想什么? – Yisroel 2017-06-30 14:28:34

回答

3

如果有帮助,Yisroel,您可以想到返回的对象“就地替换”函数。所以,funcA()被执行后,它被返回的值“替换”并传递给funcB()。

但是,通常情况下,您不希望这样的嵌套函数超过3个级别。如果它开始变得不可读,将对象存储到一个变量中,并将该变量传递给下一个函数可以使您的代码更具可读性。

所以答案是肯定的,正如其他人所指出的那样。

+0

实际上,这样做是一种代码气味,尽管我已经做到了,但我会建议不要这样做,更不用说3级了(?!) – 2010-04-22 03:52:49

+1

有时它可以被读取。即Python 3:'print(sum(len(getLines()))' – 2010-04-22 03:56:35

+0

Darko,你为什么会推荐这个? – Yisroel 2010-04-22 04:12:10

4

是的,是的,你可以。

0

我没有看到任何问题,你有没有尝试过任何样品?

它应该工作正常。

如果您遇到任何特定问题,请发布。

如果你想通过FuncA的作为参数传递给funB那么你必须调用funcB作为funcB(FuncA的)

0

是。函数的参数是在将表达式值传递给函数之前求值的表达式。一个表达式当然可以是一个函数调用。

0

是的,这应该是你想要的。 funcB(funcA())调用funcA()并将结果传递到funcB()

也许你担心它会通过功能funcAfuncB()?为此,语法应该是funcB(funcA)