• 7.4 返回多个值的函数
    • 问题
    • 解决方案
    • 讨论

    7.4 返回多个值的函数

    问题

    你希望构造一个可以返回多个值的函数

    解决方案

    为了能返回多个值,函数直接return一个元组就行了。例如:

    1. >>> def myfun():
    2. ... return 1, 2, 3
    3. ...
    4. >>> a, b, c = myfun()
    5. >>> a
    6. 1
    7. >>> b
    8. 2
    9. >>> c
    10. 3

    讨论

    尽管myfun()看上去返回了多个值,实际上是先创建了一个元组然后返回的。这个语法看上去比较奇怪,实际上我们使用的是逗号来生成一个元组,而不是用括号。比如下面的:

    1. >>> a = (1, 2) # With parentheses
    2. >>> a
    3. (1, 2)
    4. >>> b = 1, 2 # Without parentheses
    5. >>> b
    6. (1, 2)
    7. >>>

    当我们调用返回一个元组的函数的时候 ,通常我们会将结果赋值给多个变量,就像上面的那样。其实这就是1.1小节中我们所说的元组解包。返回结果也可以赋值给单个变量,这时候这个变量值就是函数返回的那个元组本身了:

    1. >>> x = myfun()
    2. >>> x
    3. (1, 2, 3)
    4. >>>

    原文:

    http://python3-cookbook.readthedocs.io/zh_CN/latest/c07/p04_return_multiple_values_from_function.html