【问题标题】:Dataclass: NameError: name 'WORD_TYPE' is not defined数据类:NameError:未定义名称“WORD_TYPE”
【发布时间】:2018-10-04 05:28:47
【问题描述】:

我尝试使用 SO 问题示例

@dataclass
class WordItem:
    id: str = field(init=False)
    phrase: str
    word_type: WORD_TYPE

    def __post_init__(self):
        self.id = f'{self.phrase}_{self.word_type.name.lower()}'

我明白了

<ipython-input-3-df20e5b35c67> in WordItem()
      3     id: str = field(init=False)
      4     phrase: str
----> 5     word_type: WORD_TYPE
      6 
      7     def __post_init__(self):

NameError: name 'WORD_TYPE' is not defined

我的 Python 版本

Python 3.6.6 :: Anaconda, Inc.

WORD_TYPE 到底是什么?

【问题讨论】:

    标签: python python-dataclasses


    【解决方案1】:

    您所指的question 我相信缺少这个,即在类定义之前定义一个自定义类型。

    from typing import NewType
    WORD_TYPE = NewType('WORD_TYPE', str)
    

    This 是为dataclasses 工作的更好示例。我还建议您使用 Python 3.7 及其 native dataclasses module

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-12
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 2018-08-06
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多