美好的一天,精彩的 Stack Overflow 社區。當作為字典輸入時,我注意到有關 Python 函式的有趣行為。
當我們使用空串列作為默認引數時,我們可以在附加一些值的同時回傳該串列。
def func_list(value,input=[]):
return input.append(value)
當空字典作為引數時,我希望同樣的事情適用。如:
def func_dict(value,input={}):
return input[value] = value
但是,Python 會引發語法錯誤,我只能執行以下操作:
def func_dict(value,input={}):
input[value] = value
return input
我想知道為什么?太感謝了!
附注。請隨時修改問題,如果我的問題表達不夠清楚,請見諒!
uj5u.com熱心網友回復:
主要區別在于 thatinput.append(value)是一個運算式而input[value] = value不是(它只是一個陳述句)。該return陳述句只能將運算式作為引數(或不帶引數回傳None)。
你可以這樣做:
def func_dict(value,input={}):
return input.update({ value: value }) or input
這是如何作業的,dict.update()回傳 None 所以我們回傳(現在更新)input。我知道它很丑,但想不出更好的。
uj5u.com熱心網友回復:
另一方面,這個詞input在python中是一個受保護的詞,用于與用戶互動,你可能想使用另一個引數名,因為你現在使用的方式覆寫了默認函式。
這是有關輸入的檔案:https : //docs.python.org/3/library/functions.html#input
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/382238.html
下一篇:如何確定我的輸出是否符合標準?
