默认参数应该在@dispatch中声明为关键字参数,如果您想修改参数值,请记住在调用这些函数时传递关键字,而不是依赖position。
from multipledispatch import dispatch
class TestExampleTest(AbstractTest):
@dispatch(ClassOne, a=bool, b=bool)
def function(self, my_class, a=True, b=True): # 1st function
do_something()
@dispatch(ClassTwo, a=bool)
def function(self, my_class, a=True): # 2nd function
do_something_else()
test_ins = TestExampleTest()
# call 1st function
test_ins.function(class_one_ins)
test_ins.function(class_one_ins, a=False)
test_ins.function(class_one_ins, a=False, b=False)
# call 2nd function
test_ins.function(class_two_ins)
test_ins.function(class_two_ins, a=False)