按空子类对对象进行分类是python式的吗?

2024-09-27 22:51:51 发布

您现在位置:Python中文网/ 问答频道 /正文

很抱歉这个题目,我不知道这个问题怎么用更一般的意义来表达。我正在研究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,但是我认为这种风格是合适的,因为其中一些实体可能会携带额外的数据。例如,当在解析器中表示节点类型时,类似循环的节点将包含一个成员,该成员的节点位于循环中。在


Tags: of标记token语言解析器类型节点成员
2条回答

Python在3.4中获得了一个正式的Enum类。在

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

也可以add other behavior and state到自定义枚举类。在

类型:

import this

(也称为pep20)简单地解释了什么是Python。在

“如果实施很难解释,那是个坏主意。 如果实现很容易解释,那可能是个好主意。”

我不知道你打算怎么做你那该死的翻译。我想您不打算将特定函数(与给定的…令牌的作用相关)放在…Token类中。在

我会使用函数,或者,如果它们是空的,我会使用一个列表来完成这个任务,一旦PY3.4发布,就会用一个枚举来代替它们。在

一言以蔽之:难以解释?继续思考!在

相关问题 更多 >

    热门问题