【发布时间】:2019-08-26 13:28:09
【问题描述】:
如何为所有这些可调用对象指定一种类型:
a(str)
b(str, str)
c(str, str, str)
d(str, str, str, str
我发现我可以用一般的方式指定Callable[..., None],但是如何详细指定所有参数都是str而不用丑陋的语法Union[Callable[[str], None], Callable[[str, str], None, __more_like_this__]。是其他方法吗?我可以用打字来做吗?
【问题讨论】:
-
那么它有什么难看的呢?我看不出您想对其进行哪些更改以使其不那么“丑陋”
-
你有四个函数,每个函数都有一个非常特定的,不同的类型。工会是唯一的出路。 (例如,
a不属于可以接受 1-4 个str参数的函数类型;它属于完全接受一个参数的函数类型。)跨度> -
@chepner 也许你是对的 - 不支持 *args 或不需要支持。
-
我试图按照我的评论提供答案;如果您认为我遗漏了应该解决的问题(例如,可能是您认为应该考虑的第三种类型
t3),请发表评论。 -
您要输入提示 1-4
str参数,还是 任何 个str参数?
标签: python python-3.x python-typing