【发布时间】:2015-07-31 14:27:40
【问题描述】:
我有一些话题要讨论。我有一段代码有 24 个ifs/elifs。 Operation 是我自己的类,代表类似于Enum 的功能。
这是一段代码:
if operation == Operation.START:
strategy = strategy_objects.StartObject()
elif operation == Operation.STOP:
strategy = strategy_objects.StopObject()
elif operation == Operation.STATUS:
strategy = strategy_objects.StatusObject()
(...)
从可读性的角度来看,我有一些顾虑。将其更改为 24 类并使用polymorphism 会更好吗?我不相信它会使我的代码可维护......一方面,那些ifs 很清楚,应该不难理解,另一方面有太多ifs。
我的问题很笼统,但是我用 Python 编写代码,所以我不能使用像 switch 这样的结构。
你怎么看?
更新:
重要的一点是StartObject()、StopObject() 和StatusObject() 是构造函数,我想将一个对象分配给strategy 引用。
【问题讨论】:
-
case声明,而不是?或者有一组方法引用来动态调用,例如任何与array_of_methods[operation]()对应的python 都将是... -
Marc,python 没有 switch/case 语句。 python.org/dev/peps/pep-3103
标签: python if-statement conditional code-readability code-maintainability