我正在做一些元编程,我需要一种方法来动态定义类型提示。有没有办法将参数数组传递给类型提示?就像是:
# Some programatically generated list where I don't know the content until runtime
permitted_types = [int, str, bool, float, list, dict]
union = Union[*permitted_types]
上面的代码产生:
TypeError: Union[arg, ...]: each arg must be a type. Got [<class 'int'>, <class 'str'>, <class 'bool'>, <class 'float'>, <class 'list'>, <class 'dict'>]
有人知道这样做的语法吗?目前我已沦为以下情况并且我讨厌它:
num_args = len(args)
if num_args == 1:
return origin[args[0]]
elif num_args == 2:
return origin[args[0], args[1]]
elif num_args == 3:
return origin[args[0], args[1], args[2]]
elif num_args == 4:
return origin[args[0], args[1], args[2], args[3]]
elif num_args == 5:
return origin[args[0], args[1], args[2], args[3], args[4]]
elif num_args == 6:
return origin[args[0], args[1], args[2], args[3], args[4], args[5]]
else:
# Raise error