[英]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
只需構造並返回一個結果容器 (例如tuple
或list
):
例如:
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.