问题描述
我正在使用multimethod
包(1.4)重载方法。我需要将联合类型(或TypeVar)作为输入类型;但是,这会引起问题。示例:
from typing import Union
from multimethod import multimethod
@multimethod
def func(x: int):
print(x)
@multimethod
def func(x: int,y: int):
print(x,y)
func(1)
func(2,3)
这很好,并且可以输出
1
2 3
符合预期。但是,此代码崩溃:
from typing import Union
from multimethod import multimethod
@multimethod
def func(x: int):
print(x)
@multimethod
def func(x: Union[int,float],3)
输出:
1
Traceback (most recent call last):
File "C:\Users\...\testing.py",line 14,in <module>
func(2,3)
File "C:\Users\...\.conda\envs\...\lib\site-packages\multimethod\__init__.py",line 184,in __call__
return self[tuple(map(self.get_type,args))](*args,**kwargs)
TypeError: func() takes 1 positional argument but 2 were given
有没有一种方法可以使联合类型和的参量数目不同?谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)