2010-04-22 81 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)