В 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
, без написания отдельной функции?
например
Color.Red | Color.Green => Red Green