【发布时间】:2021-08-03 11:32:47
【问题描述】:
我有以下批次定义
batch = {
'id': ids,
'input': [texts, text_lens],
'target': {
'dp' : {
'heads': heads_target,
'deprels': deprels_target
},
'fgpos' : target
},
'mask': mask,
'pred_mask' : pred_mask
}
是否可以在 Python 中创建一个 dict 并公开字段,以便在我的 IDE 中我可以看到类型提示和自动完成?
例如,理想情况下我希望能够写:
batch.
并获得以下自动完成选项:id、input、target、mask、pred_mask 以及它们可能具有的任何类型提示。我也理想地想要访问这样的字段:
batch.target
如果我写
batch.target.
我还将获得heads 和deprels 的自动完成和键入提示。
请注意,这些批次永远不会被修改。我假设在编写批处理定义时,必须创建一个 Python 类并设置适当的字段才能对静态分析可见。
我所描述的是否可行并且是一种好的做法?
【问题讨论】:
-
不可能。绝对不是好习惯。看看 json 架构...
-
看看 PEP589 python.org/dev/peps/pep-0589
-
TypedDict 似乎是我想要的一个不错的选择。通过编写更多的额外代码来注释批处理的类型,我可以获得键的完成建议。你介意回答这个问题吗?这似乎是一个不错的选择
标签: python autocomplete static-analysis type-hinting