为了账号安全,请及时绑定邮箱和手机立即绑定

有限可迭代的类型提示

有限可迭代的类型提示

牛魔王的故事 2022-10-05 10:13:16
我的函数接受一个参数,该参数在内部转换为列表。foothingsdef foo(things):     things = list(things)         # more code构造函数接受任何可迭代的。list但是,注释 不会给用户一个线索,即可迭代必须是有限的,而不是像 。thingstyping.Iterableitertools.count()在这种情况下,要使用的正确类型提示是什么?
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我不知道在Python中有任何可能的方法来实现这一点,因为你不能在类型提示中提供这种约束。


但是,在您的上下文中,“集合”类型可能作为解决方法很有用:

class collections.abc.Collection

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

这要求对象有一个 ,这是一个比有限更严格的要求。例如,有限生成器不计为 。__len__Collection


查看完整回答
反对 回复 2022-10-05
  • 1 回答
  • 0 关注
  • 36 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信