是否可以 "hint" 字典键?
Is it possible to "hint" dictionary keys?
在 PyCharm Code completion > "Basic Completion" > "Invoke Basic Completion" > "Dictionaries" 中,我看到,如果将字典硬编码为某些值,则可以在以下情况下使用代码完成编写有关该词典的代码。
但显然,在许多情况下,您将使用字典,并且您事先知道该字典的结构是什么,并且您不想将字典硬编码到您的代码中。例如,也许您正在解析一些具有预期结构的 YAML 或 JSON。
如果您可以 "hint" Python 中的结构,那就太好了,这样您就可以轻松快速地对所有使用该词典的地方进行编码。这可能吗?
据我所知,在 Python 中引入 TypedDict
之前,没有一致的方法来 type-hint Python 字典的特定键名和关联值=] 3.8。
"official" Python 中还没有对类型化(提示)词典的支持。但是,mypy_extensions
包确实公开了 TypedDict
,它支持以下语法来定义可由 MyPy 验证的类型化字典。
DictT = TypedDict(
'DictT ',
{
'field': str,
'int_field': int,
}
)
https://www.python.org/dev/peps/pep-0589/#alternative-syntax
然后您可以将 MyPy 集成到 PyCharm,但根据他们的错误跟踪器,不直接支持类型提示 TypedDicts https://youtrack.jetbrains.com/issue/PY-36008。
在 PyCharm Code completion > "Basic Completion" > "Invoke Basic Completion" > "Dictionaries" 中,我看到,如果将字典硬编码为某些值,则可以在以下情况下使用代码完成编写有关该词典的代码。
但显然,在许多情况下,您将使用字典,并且您事先知道该字典的结构是什么,并且您不想将字典硬编码到您的代码中。例如,也许您正在解析一些具有预期结构的 YAML 或 JSON。
如果您可以 "hint" Python 中的结构,那就太好了,这样您就可以轻松快速地对所有使用该词典的地方进行编码。这可能吗?
据我所知,在 Python 中引入 TypedDict
之前,没有一致的方法来 type-hint Python 字典的特定键名和关联值=] 3.8。
"official" Python 中还没有对类型化(提示)词典的支持。但是,mypy_extensions
包确实公开了 TypedDict
,它支持以下语法来定义可由 MyPy 验证的类型化字典。
DictT = TypedDict(
'DictT ',
{
'field': str,
'int_field': int,
}
)
https://www.python.org/dev/peps/pep-0589/#alternative-syntax
然后您可以将 MyPy 集成到 PyCharm,但根据他们的错误跟踪器,不直接支持类型提示 TypedDicts https://youtrack.jetbrains.com/issue/PY-36008。