============================
7.4 返回多个值的函数
============================

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

----------
解决方案
----------
为了能返回多个值，函数直接return一个元组就行了。例如：

.. code-block:: python

    >>> def myfun():
    ... return 1, 2, 3
    ...
    >>> a, b, c = myfun()
    >>> a
    1
    >>> b
    2
    >>> c
    3

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

.. code-block:: python

    >>> a = (1, 2) # With parentheses
    >>> a
    (1, 2)
    >>> b = 1, 2 # Without parentheses
    >>> b
    (1, 2)
    >>>

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

.. code-block:: python

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