Python 3.11+enumфункция
enum.show_flag_values()
флаги
Раскладывает целое значение флага на степени двойки: show_flag_values(13) даёт [1, 4, 8]. Помогает понять, из каких битов состоит флаг.
Синтаксис
enum.show_flag_values(value)
Сообщения об ошибках enum сами отсылают к этой функции: при проверке @verify(NAMED_FLAGS) ошибка говорит «use enum.show_flag_values(value) for details». Она принимает int (или значение флага) и возвращает список отдельных битов по возрастанию — по нему видно, какой бит не назван членом Flag. На отрицательное число функция не возвращает пустой список, а поднимает ValueError.
Примеры
import enum
print(enum.show_flag_values(13)) # → [1, 4, 8]
class Perm(enum.IntFlag):
R = 4
W = 2
X = 1
print(enum.show_flag_values(Perm.R | Perm.X)) # → [1, 4]
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности