很抱歉这个题目,我不知道这个问题怎么用更一般的意义来表达。我正在研究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中有表示枚举的other ways,但是我认为这种风格是合适的,因为其中一些实体可能会携带额外的数据。例如,当在解析器中表示节点类型时,类似循环的节点将包含一个成员,该成员的节点位于循环中。在
Python在3.4中获得了一个正式的Enum类。在
如果您在2.4和3.3之间使用Python,请检查enum34 backport。在
也可以add other behavior and state到自定义枚举类。在
类型:
(也称为pep20)简单地解释了什么是Python。在
“如果实施很难解释,那是个坏主意。 如果实现很容易解释,那可能是个好主意。”
我不知道你打算怎么做你那该死的翻译。我想您不打算将特定函数(与给定的…令牌的作用相关)放在…Token类中。在
我会使用函数,或者,如果它们是空的,我会使用一个列表来完成这个任务,一旦PY3.4发布,就会用一个枚举来代替它们。在
一言以蔽之:难以解释?继续思考!在
相关问题 更多 >
编程相关推荐