我使用PyCharm作为开发Python 2.7程序的IDE。由于Python 3之前没有注释,我使用restructuredText作为文档字符串,以便PyCharm可以推断出参数和成员变量的类型。
这适用于标准和非参数类型,但我无法使用它来工作,例如与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]
现在我使用第一种方法,因为值类的知识对于重构很重要。有没有办法为自定义容器指定内容(键/值)类型,例如OrderedDict
?