您好,登錄后才能下訂單哦!
Python的函數(shù)是可以return多個(gè)值的,但其本質(zhì)上還是返回單個(gè)值,只是利用了tuple的自動(dòng)打包,將多個(gè)值打包成單個(gè)tuple返回。
使用代碼驗(yàn)證:
def func_a(): return 1, 2, 3, 4 if __name__ == '__main__': temp = func_a() print(type(temp))
運(yùn)行結(jié)果,確認(rèn)返回的是一個(gè)tuple,
<class 'tuple'>
稍微修改代碼:
def func_a(*args): return 1, 2, 3, 4 if __name__ == '__main__': a, b, c, d = func_a() print(a, b, c, d)
代碼中利用了tuple的自動(dòng)解包,將tuple的值分別賦值給了a, b, c, d四個(gè)變量,實(shí)現(xiàn)返回多個(gè)值
既然知道實(shí)際上Python返回多個(gè)值的本質(zhì)是返回tuple,再自動(dòng)解包賦值給N個(gè)變量,那要實(shí)現(xiàn)返回任意多個(gè)值,只要手動(dòng)返回一個(gè)tuple就可以了,tuple內(nèi)元素的數(shù)量可以自定:
def func_a(*args): return tuple(arg * 2 for arg in args) if __name__ == '__main__': a, b, c, d = func_a(1, 2, 3, 4) print(a, b, c, d)
代碼中,將傳入的參數(shù)值 x 2后,轉(zhuǎn)換成tuple返回,再利用tuple的自動(dòng)解包賦值給多個(gè)變量,從而實(shí)現(xiàn)函數(shù)返回不定數(shù)量的值。
這里需要注意,當(dāng)返單個(gè)值時(shí),不需要再手動(dòng)返回一個(gè)tuple,所以修改代碼如下:
def func_a(*args): temp = tuple(arg * 2 for arg in args) return temp if len(temp) > 1 else temp[0] if __name__ == '__main__': a, b, c, d = func_a(1, 2, 3, 4) print(a, b, c, d) e = func_a('Hello') print(e)
以上這篇Python函數(shù)返回不定數(shù)量的值方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。