代码之家  ›  专栏  ›  技术社区  ›  MikiBelavista

Dataclass:NameError:未定义名称“WORD\u TYPE”

  •  0
  • MikiBelavista  · 技术社区  · 6 年前

    我试着用这样一个有问题的例子

    @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.
    

    单词类型到底是什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Sree    6 年前

    这个 question

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

    This 是一个更好的例子 dataclasses . 我还建议您使用python3.7及其 native dataclasses module .