如何以与名称属性相同的方式打印组合标志

问题描述 投票:2回答:1

在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
1个回答
0
投票

不幸的是,没有。但这听起来像good enhancement request

© www.soinside.com 2019 - 2024. All rights reserved.