【问题标题】:Python: Multiple return values assigned to each function?Python:为每个函数分配多个返回值?
【发布时间】:2018-06-30 04:17:44
【问题描述】:
def function_1():
  return (5)
  return (6)
  return(7)

result_1 = function_1() 
print(result_1) 

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

【问题讨论】:

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


【解决方案1】:

您需要以元组的形式返回多个值。

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

【讨论】:

    【解决方案2】:

    当您通过此 return (5) 行返回值 5 时,funtion_1 将返回该值并终止函数。这就是为什么后续行没有被执行。如果你想从一个函数返回多个值,那么你可以将它们作为tuplelist 等返回。比如:

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

    【讨论】:

      【解决方案3】:

      为什么当我打印function_1()的调用时,只有第一个 值 5 打印出来了吗?

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

      【讨论】:

        【解决方案4】:

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

        def function_1():
            yield (5)
            yield (6)
            yield (7)
        
        for result in function_1():
            print(result) 
        

        【讨论】:

          【解决方案5】:

          您的函数将在第一个成功的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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2019-05-10
            • 2011-10-16
            • 2020-12-17
            • 2016-06-29
            • 2018-04-28
            • 2014-09-12
            • 2020-12-06
            • 2018-01-01
            相关资源
            最近更新 更多