Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在PyCharm中键入提示非标准容器(例如OrderedDict)_Python_Pycharm_Restructuredtext_Type Hinting - Fatal编程技术网

Python 如何在PyCharm中键入提示非标准容器(例如OrderedDict)

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

我使用PyCharm作为开发Python2.7程序的IDE。因为在Python3之前没有注释,所以我对DocString使用restructuredText,以便PyCharm可以推断参数和成员变量的类型

这适用于标准和非标准化类型,但我无法使用get-it来处理例如
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
),此信息将丢失。这意味着我没有得到类型暗示,在“查找用法”和重构对话框中会出现不正确的匹配。