0

関数から 2 つの値を返すにはどうすればよいですか?

4

5 に答える 5

2

関数は単一の値のみを返すことができます。

複数の値をタプルにパックして返すのは簡単です

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

返されたタプルを次のように解凍できます

sumval, prodval = f(5,7)
于 2013-10-01T06:17:59.627 に答える
1

明らかに、関数から 2 つの値/オブジェクトを返すことはできません。ここで浮かび上がる概念は -> tuple packingandtuple unpackingです。

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


a,b = foo()

ここで行っているのは、関数から値を返すときに、単一のタプル オブジェクトを使用していて、カンマ区切りの値 (ここでは string'one''two') がタプルにパックされ、オブジェクトを含むタプルを返しているということです。(この概念を使用すると、必要な数のオブジェクトを返すことができます)。これはtuple packing

aそして、関数を呼び出している間、変数名 (ここではと) を関連付けることによってこれらのタプル値を取得しています。bこれは と呼ばれtuple unpackingます。

于 2013-10-01T06:40:07.637 に答える
0
def foo():
    return 'foo','bar'

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

この関数は戻り値のタプルを返すため、通常のタプルと同じようにアクセスできます

于 2013-10-01T06:19:04.963 に答える
0

関数は、値を含むことができるタプルを返すことができます。これにより、関数から複数の値を返すことができます。

たとえば、関数内の 2 つの値:

def blah():
    a = 1
    b = 2

そこから、これら 2 つの値を含むタプルを作成して返すことができます。

return (a,b)

これにより、変数に割り当てることができるタプルが返されます。

name1 = a
name2 = b

あなたの場合、おそらくこれをしたいでしょう:

return (h, defaults)
于 2013-10-01T06:39:54.277 に答える
0

以下にいくつかのオプションを示します。

def a(): return 1, 2

def b(): return (1, 2)

def c(): return [1, 2]

def d(): return { 'value1': 1, 'value2': 2 }
于 2013-10-01T06:21:03.260 に答える