我最近读了一篇帖子,其中有人提到不需要在python中使用枚举。我对这是否成立很感兴趣。

例如,我使用一个枚举来表示调制解调器控制信号:

class Signals:
  CTS = "CTS"
  DSR = "DSR"
  ...

我使用if signal == Signals.CTS:而不是if signal == "CTS":更好,还是我错过了一些东西?

最佳答案

Signals.CTS似乎比“CTS”更好。但是Signals不是枚举,它是具有特定字段的类。据我所知,您声称您不需要单独的枚举语言构造,因为您可以像在问题中所做的那样进行操作,或者:

CTS, DSR, XXX, YYY, ZZZ = range(5)

如果您在信号模块中拥有该模块,则可以按类似的方式将其导入,例如if signal == signals.CTS:。标准库的几个模块(包括re和os模块)中都使用了它。

关于python - 不需要枚举,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7886958/

10-13 01:58