0

我尝试使用 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 到底是什么?

4

1 回答 1

2

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

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

是一个更好的例子dataclasses。我还建议您使用 Python 3.7 及其本机数据类模块

于 2018-10-04T06:01:18.813 回答