Python pytext中的Dict[str,Any]或Dict[str,Field]

Python pytext中的Dict[str,Any]或Dict[str,Field],python,pytorch,pytext,Python,Pytorch,Pytext,我正在阅读pytext(基于PyTorch构建的NLP建模框架)的文档,这个简单的方法是从配置创建组件的工厂方法,它的行类似于Dict[str,Field]={ExtraField.TOKEN\u RANGE:RawField()} 及 一本字典怎么能有两个项目的键?这到底是什么 如果有任何指示,我将不胜感激 您看到的是python类型的注释。您可以阅读语法、设计和基本原理以及实际实现(可能的类型、如何构造自定义类型等)。注意这里的List和Dict是大写的-Dict[str,Any]用于构造类

我正在阅读pytext(基于PyTorch构建的NLP建模框架)的文档,这个简单的方法是从配置创建组件的工厂方法,它的行类似于
Dict[str,Field]={ExtraField.TOKEN\u RANGE:RawField()}

一本字典怎么能有两个项目的键?这到底是什么


如果有任何指示,我将不胜感激

您看到的是python类型的注释。您可以阅读语法、设计和基本原理以及实际实现(可能的类型、如何构造自定义类型等)。注意这里的
List
Dict
是大写的-
Dict[str,Any]
用于构造类型“带字符串键和任何值的字典”,而不是访问该类型的实例

这些是可选的,默认情况下不用于任何用途(因此在阅读代码时可以忽略它们,因为python也可以)。但是,有一些工具可以解释这些类型注释并检查它们是否一致


我不知道它们在
torchtext
中是如何使用的-我自己没有使用它,也没有在文档中快速搜索到任何东西-但它们可能对使用某些特殊工具的开发人员很有帮助。但它们也可以对你有所帮助!从您的角度来看,最好将它们作为注释而不是代码处理。读取
预处理
的签名,您知道
数据
应该是一个
列表
,包含
dict
s,带有
str
键和任何值类型。如果您的代码中有bug,并且发现
data
本身就是一个
str
,那么您肯定知道这是一个bug(可能不是唯一的一个)。

回答得很好。谢谢
@classmethod
def from_config(cls, config: Config, model_input_config, target_config, **kwargs):
    model_input_fields: Dict[str, Field] = create_fields(
      model_input_config,
        {
            ModelInput.WORD_FEAT: TextFeatureField,
            ModelInput.DICT_FEAT: DictFeatureField,
            ModelInput.CHAR_FEAT: CharFeatureField,
        },
    )
    target_fields: Dict[str, Field] = {WordLabelConfig._name: WordLabelField.from_config(target_config)}
    extra_fields: Dict[str, Field] = {ExtraField.TOKEN_RANGE: RawField()}
    kwargs.update(config.items())
    return cls(
        raw_columns=config.columns_to_read,
        targets=target_fields,
        features=model_input_fields,
        extra_fields=extra_fields,
        **kwargs,
    )
    def preprocess(self, data: List[Dict[str, Any]]):
        tokens = []
        for row in data:
            tokens.extend(self.preprocess_row(row))
        return [{"text": tokens}]