簡體   English   中英

如何使“返回數”成為變量

[英]How to make the “number of returns” a variable

讓我們考慮一個正常的功能:

def function(stuff):
    return result

要調用它並將結果輸入變量:

variable = function(stuff)

我可以用3(例如)結果做同樣的事情:

def function(stuff):
    return result1, result2, result3

要調用它並獲得3個變量的結果:

variable1, variable2, variable3 = function(stuff)

我的問題是:當我設置一個名為“結果數”的變量時,如何編寫一個自動讀取和更改的函數。 或者,在我的實際情況中,“結果數”將取決於我的變量東西的長度(變量stuff是一個數組列表)。

我希望以前沒有回答過這個問題。

您可以創建一個包含所需元素數量的list ,然后return tuple(yourList)

但是,您可以直接返回list Python慣用並不關心東西的返回類型,因此任何尋找像tuple一樣的迭代的調用者也可以遍歷list

list也可以解壓縮:

>>> foo(3)
[1, 2, 3]
>>> a, b, c = foo(3)
>>> a
1
>>> b
2
>>> c
3

只需構造並返回一個結果容器 (例如tuplelist ):

例如:

import random

def function(stuff):
    number_of_results = random.randrange(1, 4)
    results = tuple(random.randint(0, 100) for _ in range(number_of_results))
    return results

for _ in range(5):
    print(function(None))

樣本輸出:

(0, 28)
(66,)
(62, 63, 88)
(99, 89, 67)
(87, 91)

如果要將return值分配給單獨的變量,則可以,但知道將返回多少函數將是必要的。 例如,如果你事先知道它會返回三件事,你可以寫: variable1, variable2, variable3 = function(stuff) 出於這個原因,最好只希望它返回一個容器並在調用該函數后處理其內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM