简体   繁体   中英

How to print combined Flag in the same way as name property

In Python, you can use the Flag class to represent combinations of values.

class Color(Flag):
    Red = auto()
    Green = auto()
    Blue = auto()
    White = Red | Green | Blue

These implicitly convert to strings so you can print them.

>>> print(Color.Red, Color.White, Color.Red|Color.Green)
Color.Red Color.White Color.Green|Red

The name property gives you can even nicer way to print, but it doesn't work for unnamed combined values.

>>> print(Color.Red.name, Color.White.name, (Color.Red|Color.Green).name)
Red White None

Is there any way to get a combined Flag value to print in a similar way to name , without writing a separate function?

eg

Color.Red | Color.Green  =>  Red Green

Unfortunately, no. But this sounds like a good enhancement request .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM