如何在类型提示中指定dict_values?

问题描述 投票:0回答:2

我的函数从字典中接收值。下面的MWE应该给人留下印象:

def f(x):
    print([y for y in x])

f({'a': 0, 'b': 1}.values()) #prints [0, 1]

x
的类型不是
dict
也不是
list
而是
dict_values
。然而
def f(x: dict_values):
给出
NameError: name 'dict_values' is not defined

那么,如何在类型提示中指定 dict_values 呢?

python type-hinting
2个回答
10
投票

您可以使用 ValuesView 进行类型提示:

from typing import ValuesView

print(isinstance(dict(a=3).values(), ValuesView))

def f(x: ValuesView):
    print([y for y in x])

0
投票
from collections.abc import Iterable

def f(x: Iterable[int]):
    print([y for y in x])

f({'a': 0, 'b': 1}.values()) #prints [0, 1]
© www.soinside.com 2019 - 2024. All rights reserved.