2013-10-01 50 views

回答

2

函數只能返回一個值。

可以很容易地多個值打包成一個元組,並返回

def f(x, y): 
    retval1 = x + y 
    retval2 = x * y 
    return retval1, retval2 

可以解壓返回的元組這樣

sumval, prodval = f(5,7) 
0
def foo(): 
    return 'foo','bar' 

>> print foo()[0] 
'foo' 
>> print foo()[1] 
'bar' 

該函數返回返回值的元組,所以你可以像訪問普通元組一樣訪問它們

0

這裏有一些選項:

def a(): return 1, 2 

def b(): return (1, 2) 

def c(): return [1, 2] 

def d(): return { 'value1': 1, 'value2': 2 } 
0

函數可以返回一個元組,它可以包含值。這允許您從函數返回多個值。

例如,兩個值的函數:

def blah(): 
    a = 1 
    b = 2 

從那裏可以創建一個包含這兩個值的元組並返回它:

return (a,b) 

這將返回一個元組,你可以分配給變量:

name1 = a 
name2 = b 

在你的情況,也許你想這樣做:

return (h, defaults) 
1

顯然你不能從函數返回兩個值/對象。這裏出現的概念是 - >tuple packingtuple unpacking

def foo(): 
    return 'one','two' 


a,b = foo() 

什麼,你在這裏做的,而從函數返回值,你正在使用一個元組對象,並以逗號分隔值(這裏串'one''two')打包成元組,你正在返回該元組包含對象。 (通過使用這個概念,你可以返回儘可能多的對象)。這是tuple packing

在調用函數時,通過將變量名稱(此處爲ab)與它關聯來檢索這些元組值,這稱爲tuple unpacking

相關問題