如何在Python中为字典键指定返回类型?

3

假设我有一个想要使用类型提示增强的函数(在Python 3.9中):

def my_func():
    return my_dict.keys() # origin of my_dict is irrelevant

我看过PEP 589这个Stack Overflow问题,介绍了如何使用TypedDict输入字典中的键和值。然而,这不是我想要实现的。
我想要一个用于字典键对象的返回类型。我知道可以使用list(my_dict)将键对象转换为列表,然后使用返回类型list[key_type](其中key_typeintstr等)。但这是正确的方法吗? my_dict的类型
>>> type(my_dict.keys())
<class 'dict_keys'>

然而,我无法像这样使用dict_keys
def my_func() -> dict_keys:
     return my_dict.keys()

Pylance 报告说 my_dict.keys() 的类型是 _dict_keys[key_type, value_type]。为什么这种类型被认为是“私有的”,它是从哪里来的?我们能否将其用作返回类型?
1个回答

10

1
谢谢,这解决了我的问题。请注意,在Python 3.9中我们也可以直接使用dict,而不是Dict[...](参见PEP 585),只是为了改进这个答案 ;) - Splines

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接