如何以与名称相同的方式打印组合标志 属性
How to print combined Flag in the same way as name property
在Python中,您可以使用标志class来表示值的组合。
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.
在Python中,您可以使用标志class来表示值的组合。
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.