有限迭代的类型提示

问题描述 投票:5回答:1

我的函数foo接受参数things,该参数在内部被转换为列表。

def foo(things):
    things = list(things)
    # more code

list构造函数接受任何可迭代的。

但是,用things注释typing.Iterable并不能为用户提供线索,即可迭代项必须是有限的,而不是itertools.count()之类的东西。

在这种情况下使用的正确类型提示是什么?

python iterable type-hinting
1个回答
4
投票

我不知道在Python中实现此目标的任何可能方法,因为您不能在类型提示中提供此类约束。


但是,Collection可能在您的上下文中作为解决方法很有用:

Collection

用于大小可迭代的容器类的ABC。

© www.soinside.com 2019 - 2024. All rights reserved.