在字符串转换中获取枚举值

新手上路,请多包涵

我定义了以下枚举:

 from enum import Enum
class D(Enum):
    x = 1
    y = 2

print(D.x)

现在打印的值是

D.x

相反,我希望打印枚举的值

1

可以做什么来实现这个功能?

原文由 Vaibhav Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 410
2 个回答

您正在打印枚举 _对象_。如果您只想打印,请使用 .value 属性:

 print(D.x.value)

请参阅 对枚举成员及其属性部分的编程访问

如果您有一个枚举成员并且需要它的名称或值:

>  >>>
> >>> member = Color.red
> >>> member.name
> 'red'
> >>> member.value
> 1
>
> ```

如果您只想提供自定义字符串表示,则可以将 `__str__` 方法添加到您的枚举中:

class D(Enum): def str(self): return str(self.value)

x = 1
y = 2

演示:

from enum import Enum class D(Enum): … def str(self): … return str(self.value) … x = 1 … y = 2 … D.x print(D.x) 1

”`

原文由 Martijn Pieters 发布,翻译遵循 CC BY-SA 3.0 许可协议

我使用以下方法实现了访问

class D(Enum):
    x = 1
    y = 2

    def __str__(self):
        return '%s' % self.value

现在我可以做

print(D.x) 得到 1 结果。

如果您想打印 x 而不是 --- ,您也可以使用 self.name 1

原文由 Vaibhav Mishra 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题