我尝试使用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?
答案 0 :(得分:1)
您认为的question缺少此信息,即在类定义之前定义自定义类型。
from typing import NewType
WORD_TYPE = NewType('WORD_TYPE', str)
This是dataclasses
更好的示例。我还建议您使用Python 3.7及其native dataclasses module。