键入提示非生成器(非消耗品)可迭代

时间:2018-04-09 02:30:08

标签: python-3.x types type-hinting

我想输入提示这样的函数:

from types import Iterable

def func(thing: Iterable[str]) -> None:
    for i in range(10):
        for x in thing:
            do_thing(x)

PyCharm(正确地)让我逃避将生成器传递给此函数,但是我想以一种它不允许我的方式键入提示,同时仍然接受其他迭代。

使用Sequence[str]不是一个选项,像KeyView这样的迭代不是序列,但我仍然希望能够包含它们。

有人提到使用带有Union + Sequence的{​​{1}},这可行,但我想知道是否有更优雅和通用的解决方案

当然,无论如何我都可以将KeyView转换为thing,但我宁愿正确地提示此功能类型。

使用Python 3.7

0 个答案:

没有答案
相关问题