在Python中,函數是否知道要輸出多少個輸出?例如,我可以有一個函數,通常返回一個輸出,但如果請求兩個輸出,它會做一個額外的計算並返回呢?Python函數知道請求了多少個輸出?
或者這不是標準的做法嗎?在這種情況下,最好避免提供第二個輸入的額外函數參數。但我有興趣學習這樣做的標準方法。
在Python中,函數是否知道要輸出多少個輸出?例如,我可以有一個函數,通常返回一個輸出,但如果請求兩個輸出,它會做一個額外的計算並返回呢?Python函數知道請求了多少個輸出?
或者這不是標準的做法嗎?在這種情況下,最好避免提供第二個輸入的額外函數參數。但我有興趣學習這樣做的標準方法。
真正的和簡單的答案是:否。
Python函數/方法不知道多輸出的方式要求,作爲返回元組拆包函數調用後會發生。
什麼是相當做雖然最好的做法是使用下劃線(_)作爲該從函數返回的不是在需要時未使用指定參數時,例如一個佔位符:
def f():
return 1, 2, 3
a, b, c = f() # if you want to use all
a, _, _ = f() # use only first element in the returned tuple, 'a'
_, b, _ = f() # use only 'b'
例如,當,使用下劃線(_)pylint將會禁止任何未使用的參數警告。
Python函數總是返回恰好爲1的值。
在這種情況下:
def myfunc():
return
該值是無。在這種情況下:
def myfunc():
return 1, 2, 3
該值是元組(1,2,3)。
所以沒有什麼功能可以知道,真的。
至於返回由參數控制的不同輸出,我總是在圍繞這一點。這取決於實際使用情況。對於其他人使用的公共API,可能最好提供具有不同返回類型的兩個獨立函數,這些函數會調用不帶參數的私有代碼。
不,功能不知道;在函數調用後解包返回的元組。通常你會爲這個用例寫兩個函數。您可以從雙返回值調用單返回值函數,以避免重複代碼。 – kindall
函數內只能有一個'return';但是,返回沒有類型限制。所以,例如,同樣的函數可以返回'True',並且在給定不同的輸入/條件的情況下,返回'(True,'ABC') - 雖然這通常不是好設計,因爲我不知道在使用功能 – Nicarus
你能舉一個你爲什麼需要這個的例子嗎?如果是用於測試,你可以有一個環境變量或全局變量來控制它! – rohithpr