我有一个物体,它是一本字典。我想告诉我的编辑器这个对象是这样的,我该怎么做呢?目前我有:
def do_somthing(dict_of_dicts):
"""
:type dict_of_dicts: dict of dict
"""
for key, value in dict_of_dicts.items():
for key2, value2 in value.items():
print('Key')
然而,我的编辑器(Pycharm)似乎没有注册这一点。
发布于 2018-08-03 04:26:39
可以通过使用Dict
的类型提示来实现这一点
from typing import Dict, Any
def do_somthing(dict_of_dicts: Dict[Any, Dict]):
"""
:type dict_of_dicts: Dict[Any, Dict]
"""
for key, value in dict_of_dicts.items():
for key2, value2 in value.items():
print('Key')
发布于 2018-08-03 04:26:58
我不使用PyCharm,但使用…它能理解类型注解,对吧?因此,将其指定为注释:
from typing import Dict, Any
def do_something(dict_of_dicts: Dict[Any, Dict[Any, Any]]):
# ...
或者您甚至可以定义一个泛型DictOfDict
类型(在外键、内键和内值上都是泛型):
from typing import Dict, Any, TypeVar, Generic:
K1, K2, V = TypeVar('K1'), TypeVar('K2'), TypeVar('V')
class DictOfDicts(Dict[K1, Dict[K2, V]]): ...
def do_something(dict_of_dicts: DictOfDicts[Any, Any, Any]):
# ...
发布于 2021-04-13 23:45:03
你可能已经找到了答案,但对于那些偶然发现这个帖子的人来说:
尝试一下,不需要导入typing
dict[dict]
它将在docstring中显示为:
Dict[dict]
在您的示例中:
def do_somthing(dict_of_dicts):
"""
:type dict_of_dicts: dict[Any, dict]
"""
for key, value in dict_of_dicts.items():
for key2, value2 in value.items():
print('Key')
https://stackoverflow.com/questions/51661560
复制相似问题