我對此代碼感到困惑,allmax傳遞hand_rank函數作爲密鑰,但是在allmax的定義中,它將密鑰設置爲None,然後hand_rank如何傳遞給這個allmax函數?Python:如何將密鑰傳遞到默認值爲None的函數
def poker(hands):
"Return a list of winning hands: poker([hand,...]) => [hand,...]"
return allmax(hands, key=hand_rank)
def allmax(iterable, key=None):
"Return a list of all items equal to the max of the itterable."
result, maxval = [],None
key = key or (lambda x:x)
for x in iterable:
xval = key(x)
if not result or xval > maxval:
result,maxval = [x],xval
elif xval == maxval:
result.append(x)
return result
'key = None'提供一個默認值,以防調用程序不提供密鑰。發佈前請閱讀文檔。這個句法特徵被稱爲「關鍵字參數」。 – Prune
這裏沒有足夠的代碼來查看發生了什麼。什麼是'hand_rank',這個定義在哪裏,什麼叫什麼?請參閱[mcve] –
謝謝,下次請注意! – Lucy