数据类:NameError:名称“ WORD_TYPE”未定义

时间:2018-10-04 05:28:48

标签: python python-dataclasses

我尝试使用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?

1 个答案:

答案 0 :(得分:1)

您认为的question缺少此信息,即在类定义之前定义自定义类型。

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

Thisdataclasses更好的示例。我还建议您使用Python 3.7及其native dataclasses module