元组的类型提示,如果参数的数量可以是 2 或 3
Type hint for Tuple, if the number of arguments can be 2 or 3
我想问一下,如何在我的情况下为 *args 变量编写正确的类型提示。
我有这个方法:
def insert(self, *args) -> None:
*args 的格式为 Union[Tuple[My_Class, str, ?], Iterable[Tuple[My_class, str, ?]]],其中第三个参数可以提供也可以不提供。 它标有问号。
我用这个语句调用这个方法:
form.insert(
(first_field, "John", "Doe"),
(date_field, "12251996"),
)
总结 *args可以是Tuple,里面有2个或3个值,其中第三个参数是str,或者不给这个方法
或者它可以是可迭代的元组,其中元组具有与前一种情况相同的值。
A 尝试了这些类型提示,但没有提供我需要的东西。
Union[Tuple[My_Class, str, Optional[str]], Iterable[Tuple[My_class, str, Optional[str]]]]
Union[Tuple[My_Class, str, ...], Iterable[Tuple[My_class, str, ...]]]
Union[Tuple[My_Class, str, Union[str, ...]], Iterable[Tuple[My_class, str, Union[str, ...]]]]
有没有人知道如何解决这个问题?
将两个版本都添加到您的 Union
def insert(self, *args: Union[
Tuple[X, str, str],
Tuple[X, str],
Iterable[Union[Tuple[X, str, str], Tuple[X, str]]]
]) -> None:
虽然该类型别名的大小表明该方法做的太多了
我想问一下,如何在我的情况下为 *args 变量编写正确的类型提示。
我有这个方法:
def insert(self, *args) -> None:
*args 的格式为 Union[Tuple[My_Class, str, ?], Iterable[Tuple[My_class, str, ?]]],其中第三个参数可以提供也可以不提供。 它标有问号。
我用这个语句调用这个方法:
form.insert(
(first_field, "John", "Doe"),
(date_field, "12251996"),
)
总结 *args可以是Tuple,里面有2个或3个值,其中第三个参数是str,或者不给这个方法
或者它可以是可迭代的元组,其中元组具有与前一种情况相同的值。
A 尝试了这些类型提示,但没有提供我需要的东西。
Union[Tuple[My_Class, str, Optional[str]], Iterable[Tuple[My_class, str, Optional[str]]]]
Union[Tuple[My_Class, str, ...], Iterable[Tuple[My_class, str, ...]]]
Union[Tuple[My_Class, str, Union[str, ...]], Iterable[Tuple[My_class, str, Union[str, ...]]]]
有没有人知道如何解决这个问题?
将两个版本都添加到您的 Union
def insert(self, *args: Union[
Tuple[X, str, str],
Tuple[X, str],
Iterable[Union[Tuple[X, str, str], Tuple[X, str]]]
]) -> None:
虽然该类型别名的大小表明该方法做的太多了