我有一个函数,可以合并int或str的两个列表.
它由以下代码定义:
AddableList = ...
def add_arrays(array: AddableList, array2: AddableList) -> AddableList:
if len(array) != len(array2):
raise ValueError
return [a + b for a, b in zip(array, array2)]
键入AddableList
时,使用List[int]
键入AddableList
时,使用List[str]
但是,mypy将返回以下错误
error: Unsupported operand types for + ("int" and "str")
error: Unsupported operand types for + ("str" and "int")
note: Both left and right operands are unions
Found 2 errors in 1 file (checked 333 source files)
正确键入时,列表中有AddableList = List[Union[int, str]]
个
最后,当try 键入AddableList
到Union[List[int], List[str]]
时,mypy错误为:
error: Unsupported left operand type for + ("object")
我应该使用什么类型来解决此问题?