Dataclass: NameError: имя 'WORD_TYPE' не определено - PullRequest
0 голосов
/ 04 октября 2018

Я пытался работать с таким примером вопроса

@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 голосов
/ 04 октября 2018

В вопросе , о котором вы говорите, отсутствует, я полагаю, упущение, которое заключается в определении пользовательского типа перед определением класса.

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

Это Это лучший пример для dataclasses.Я также рекомендую вам использовать Python 3.7 и его модуль родных классов данных .

...