假设我有一个想要使用类型提示增强的函数(在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_type
是int
、str
等)。但这是正确的方法吗?
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]
。为什么这种类型被认为是“私有的”,它是从哪里来的?我们能否将其用作返回类型?
dict
,而不是Dict[...]
(参见PEP 585),只是为了改进这个答案 ;) - Splines