【发布时间】:2019-08-24 13:01:18
【问题描述】:
我有一个函数适用于任何可以返回其长度的迭代。
所以它适用于 list、dict 和 dict.tems(),即ItemsView。
我应该使用什么正确的打字方式?
编辑: 这是一个示例函数:
def print_iter(some_iterable: xxx):
for idx, val in enumerate(some_iterable):
print(val, idx, len(some_iterable))
我不确定要使用什么类型来代替 xxx
【问题讨论】:
-
请注意,建议的副本(当前)投票最高的答案不是您想要的;请参阅answer using
Protocol,或我在下面的答案。 -
@che 因为 Collection 还必须有
__contains__? / 您可以在该答案上留下评论,而不是在这里。 -
其实我收回我的评论;我记错了
Collection的用途。但__contains__可能确实比您需要的更具体。
标签: python python-3.x typing