【问题标题】:How to print combined Flag in the same way as name property如何以与名称属性相同的方式打印组合标志
【发布时间】: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


    【解决方案1】:

    很遗憾,没有。但这听起来像是good enhancement request

    【讨论】:

    • 很高兴听到它被考虑!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 2015-10-23
    相关资源
    最近更新 更多