Python:为每个函数分配了多个返回值?

时间:2018-06-30 04:17:45

标签: python python-3.x function calling-convention

def function_1():
  return (5)
  return (6)
  return(7)

result_1 = function_1() 
print(result_1) 

为什么当我打印function_1()的调用时,仅打印第一个值5?

5 个答案:

答案 0 :(得分:0)

您需要将多个值作为元组返回。

def function_1():
  return 5, 6, 7

result_1 = function_1() 
print(result_1)

a, b, c = function_1()
print(a, b, c)

这将输出:

(5, 6, 7)
5 6 7

答案 1 :(得分:0)

当您通过此return (5)行返回值5时,funtion_1返回值并终止该函数。这就是为什么后续行没有得到执行的原因。如果要从一个函数返回多个值,则可以将它们返回为tuplelist等。例如:

def function_1():
  return(5,6,7)

答案 2 :(得分:0)

  

为什么是当我打印function_1()的调用时,只有第一个   值5是否被打印?

正在打印值“ 5”,因为当您调用function_1时,function_1将始终返回“ 5”,并且不会在该函数中执行下一行。这就是您始终获得相同价值的原因。

答案 3 :(得分:0)

您可以改用yield生成一个生成器。 return停止函数执行。代码如下:

def function_1():
    yield (5)
    yield (6)
    yield (7)

for result in function_1():
    print(result) 

答案 4 :(得分:0)

您的函数将在第一个成功的return语句(在本例中为5)上终止。正如其他人所建议的那样,您可以将这些值包装在tuplelist中。您还可以返回包含以下多个值的字典:

def function_1():
    return {'first': 5, 'second': 6, 'third': 7}

然后您可以这样称呼它:

>>> result_1 = function_1()
>>> result_1
{'first': 5, 'second': 6, 'third': 7}
>>> result_1['first']
5
>>> result_1['second']
6
>>> result_1['third']
7