【问题标题】:Python enum implementation [duplicate]Python枚举实现[重复]
【发布时间】:2014-08-18 04:43:29
【问题描述】:

我已经在python中声明了枚举如下。我不知道如何使用它们。当我创建这个类的一个实例时,它给出了错误,因为需要一个给定的两个参数。

class CBarReference(Enum):    
ThisBar = 0,
NextBar = 1,
Undefined=2
a=CBarReference()

我知道错误是什么,但我不知道除了 self 之外的第二个参数应该给出什么。

【问题讨论】:

  • 你读过the docs吗?或者考虑显示您正在运行的实际代码和完整的错误回溯?
  • 只告诉如何制作这种类型的类和第二个参数。

标签: python enums


【解决方案1】:

您永远不必创建枚举的实例;它们都可以直接从类中访问,您可以随意将它们分配给变量:

a = CBarReference.ThisBar
b = CBarReference.NextBar
c = CBarReference.Undefined
d = CBarReference.ThisBar
assert(a == d)
assert(b != a)
assert(b != c)

【讨论】:

  • 我需要创建一个实例。
  • 您需要实例做什么?您收到错误的原因是因为 Enum 的构造函数需要 *args 字符串,这样您就可以在没有子类化的情况下创建枚举。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2023-04-01
  • 2016-08-28
  • 2020-09-18
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多