亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解包函數參數

解包函數參數

Cats萌萌 2019-08-28 15:13:13
解包函數參數如果一個函數需要n個參數,并且有另一個函數返回一個包含n個項目的序列(或者我有一個包含n個項目的序列),有沒有辦法“映射”這兩個函數(或者make第一個函數采用n個項目的序列作為輸入和返回結果)我不希望(也許在某些情況下不能)自己編輯函數并更改其參數參數和返回值類型。即)def func1(x, y, z):     return x+y+zdef func2(w):     return [i for i in range(w,w+3)]func1(func2( ... ))在這種情況下不能。
查看完整描述

2 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

您正在尋找*args參數語法:


>>> def foo(bar, baz, spam):

...     print bar, baz, spam

...

>>> arguments = [1, 2, 3]

>>> foo(*arguments)

1, 2, 3

將參數傳遞給callable時,任何以*asterix開頭的表達式都被解釋為位置參數序列,并擴展為作為被調用對象(函數,方法等)的單獨參數傳遞。


對于你的例子,那將是:


func1(*func2(...))

使用**double asterixes(采用映射)有一個等價的關鍵字,你也可以在函數簽名中使用相同的語法。



查看完整回答
反對 回復 2019-08-28
  • 2 回答
  • 0 關注
  • 423 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號