Python 如何在PyCharm中键入提示非标准容器(例如OrderedDict)
我使用PyCharm作为开发Python2.7程序的IDE。因为在Python3之前没有注释,所以我对DocString使用restructuredText,以便PyCharm可以推断参数和成员变量的类型 这适用于标准和非标准化类型,但我无法使用get-it来处理例如Python 如何在PyCharm中键入提示非标准容器(例如OrderedDict),python,pycharm,restructuredtext,type-hinting,Python,Pycharm,Restructuredtext,Type Hinting,我使用PyCharm作为开发Python2.7程序的IDE。因为在Python3之前没有注释,所以我对DocString使用restructuredText,以便PyCharm可以推断参数和成员变量的类型 这适用于标准和非标准化类型,但我无法使用get-it来处理例如collections.OrderedDict。例如,我有一个OrderedDict,键类型为str,值类型为MyDataSet 我可以在docstring中想到以下表示 # Values are recognized as cor
collections.OrderedDict
。例如,我有一个OrderedDict
,键类型为str
,值类型为MyDataSet
我可以在docstring中想到以下表示
# Values are recognized as correct class, but _member class is imprecise
:type _member: dict[str, MyDataSet]
# Class of _member is determined correctly, but values types are unknown
:type _member: OrderedDict
:type _member: OrderedDict[str, MyDataSet]
# Class of _member is imprecise and values types are unknown
:type _member: OrderedDict | dict[str, MyDataSet]
:type _member: dict[str, MyDataSet] | OrderedDict[str, MyDataSet]
现在我使用第一种方法,因为value类的知识对于重构很重要。是否有办法指定自定义容器的内容(键/值)类型,例如
orderedict
?问题出在哪里?看来你的建议是对的。请参阅sphinx-doc.org/en/1.5.1/domains.html并搜索“列表和字典等容器类型”。@Humbalan PyCharm似乎只解析内置容器的键值类型(dict
、list
和tuple
)。对于其他类型(如OrderedDict
),此信息将丢失。这意味着我没有得到类型暗示,在“查找用法”和重构对话框中会出现不正确的匹配。