python 中的多重调度
Multipledispatch in python
谁能解释为什么它不起作用?我希望每个函数都有相同的第二个参数。
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>
因为您在 @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
谁能解释为什么它不起作用?我希望每个函数都有相同的第二个参数。
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>
因为您在 @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