Проверка нескольких значений в Python

03.06.24 527 1

В программе есть сразу три флага или настройки, которые мне нужно проверить. Собственно, вот код и как я выполняю проверку:

setting_enabled = 0
setting_visible = 1
setting_public = 0

if setting_enabled == 1 or setting_visible == 1 or setting_public == 1:
    print('Действие')

Есть способ как-то сделать это изящнее?

Ответы

Решение

Из логики понял, что необходимо чтобы хотя бы один параметр из трех соответствовал значению 1. Тогда можно воспользоваться ключевым словом in:

setting_enabled, setting_visible, setting_public = 0, 1, 0

if 1 in (setting_enabled, setting_visible, setting_public):
    print('Действие')

Учитывая, что в булевой логике 0 это False, а 1 это True можем воспользоваться тем же что и при логических выражениях:

if setting_enabled or setting_visible or setting_public:
    print('Действие')

Или использовать метод any, он здесь весьма кстати будет:

if any((setting_enabled, setting_visible, setting_public)):
    print('Действие')
questionbot 03.06.24

Вопрос решен

Добавление новых ответов недоступно