在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
不幸的是,没有。但这听起来像good enhancement request。