誰能解釋為什么它不起作用?我想為每個函式使用相同的第二個引數。
from multipledispatch import dispatch
@dispatch(str, ss=list)
def Func(s, ss=[]):
return s
@dispatch(list, ss=list)
def Func(l, ss=[]):
return Func(l[0], ss)
Func(["string"])
錯誤是:Could not find signature for Func: <str, list>
uj5u.com熱心網友回復:
因為您在 中@dispatch使用關鍵字引數,所以在呼叫函式時必須使用關鍵字引數,因為它已經使用關鍵字ss作為簽名才能被發現。
@dispatch(str, ss=list)
def Func(s, ss=[]):
return s
@dispatch(list, ss=list)
def Func(l, ss=[]):
return Func(l[0], ss=ss)
Func(["string"]) # output: string
Func("string", []) # calling this will raise error
Func("string", ss=[]) # output: string
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/485509.html
標籤:Python python-3.x
上一篇:結構模式匹配中的可選匹配
下一篇:在檔案中列印一定數量的行
