【发布时间】:2020-03-22 08:00:25
【问题描述】:
在 Python 中,您可以使用 Flag 类来表示值的组合。
class Color(Flag):
Red = auto()
Green = auto()
Blue = auto()
White = Red | Green | Blue
这些隐式转换为字符串,因此您可以打印它们。
>>> print(Color.Red, Color.White, Color.Red|Color.Green)
Color.Red Color.White Color.Green|Red
name 属性为您提供了更好的打印方式,但它不适用于未命名的组合值。
>>> print(Color.Red.name, Color.White.name, (Color.Red|Color.Green).name)
Red White None
有没有什么方法可以像name一样打印一个组合的Flag值,而不需要编写一个单独的函数?
例如
Color.Red | Color.Green => Red Green
【问题讨论】:
标签: python python-3.x printing enums flags