有限可迭代的类型提示

我的函数接受一个参数,该参数在内部转换为列表。foothings

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

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

但是,注释 不会给用户一个线索,即可迭代必须是有限的,而不是像 。thingstyping.Iterableitertools.count()

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


牛魔王的故事
浏览 38回答 1
1回答

慕虎7371278

我不知道在Python中有任何可能的方法来实现这一点,因为你不能在类型提示中提供这种约束。但是,在您的上下文中,“集合”类型可能作为解决方法很有用:class collections.abc.CollectionABC 用于大小可迭代的容器类。这要求对象有一个 ,这是一个比有限更严格的要求。例如,有限生成器不计为 。__len__Collection
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python