Python學習之函式返回多個值

ARM的程式設計師敲著詩歌的夢發表於2019-03-24

Python學習之函式返回多個值

問題的引出

Python中,一個函式能不能一次返回多個值?

在C語言中,函式最多返回一個值,如果要返回多個值,可以把這些值封裝在一個結構體中。注意,C語言不允許函式返回整個陣列。

Python中,可以返回任意型別的物件,如果想返回多個值,可以把這些值封裝成一個元組或者其他的集合型別

舉例

>>> def multiple(x, y):
...     x = 2
...     y = [3, 4]
...     return x, y
... 
>>> X = 1
>>> L = [1, 2]
>>> X, L = multiple(X, L)
>>> X
2
>>> L
[3, 4]

注意第8行,看起來好像返回了2個值,但是實際上只有一個:一個包含2個元素的元組。它的圓括號是可選的,這裡省略了。在呼叫返回之後,我們能夠使用元組賦值去分解這個返回元組的組成部分。

這段程式碼的實際效果就是通過明確的賦值模擬了其他語言中的輸出引數:X 和 L 在呼叫後發生了改變。

參考資料

《Python學習手冊(第4版)》,機械工業出版社

相關文章