Pythonic是否通过空子类对对象进行分类?

对标题感到抱歉,我不确定如何在更广泛的意义上说出这个问题.我正在研究一个
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中的一个合理的替代方案.

我已经读过在XP中有other ways代表枚举,但我认为这种风格是合适的,因为其中一些实体可能带有额外的数据.例如,当表示解析器中的节点类型时,像循环这样的节点将包含循环内具有节点的成员.

最佳答案 Python在3.4中获得官方枚举类.

如果您在2.4和3.3之间使用Python,请检查enum34 backport.

也可以将add other behavior and state转换为自定义Enum类.

点赞