对不起标题,我不确定如何用更一般的意义来表达这个问题。我正在研究一个brainfuck解析器。该语言有 8 种标记,我目前用以下类表示:
# Types of lexical tokens
class Token: pass
class IncPtrToken(Token): pass
class DecPtrToken(Token): pass
class IncByteToken(Token): pass
class DecByteToken(Token): pass
class OutputByteToken(Token): pass
class InputByteToken(Token): pass
class LoopStartToken(Token): pass
class LoopEndToken(Token): pass
在另一种语言中,我可能会使用枚举来表示不同的类型,但这在 Python 中似乎是一个合理的替代方案。
我读过在 Python 中还有其他表示枚举的方法,但我认为这种风格是合适的,因为其中一些实体可能会携带额外的数据。例如,当在解析器中表示节点类型时,像循环这样的节点将包含一个成员,其中节点位于循环内。