Самый питонический способ рефакторинга нескольких проверок равенства
Учитывая оператор if, например:
if response.status == SUCCESS or \
response.status == FAILURE or \
response.status == CLEAR or \
response.status == READY:
Лучше провести рефакторинг как (1):
if any(response.status == status for status in (SUCCESS, FAILURE, CLEAR, READY):
Или (2):
if response.status in {SUCCESS, FAILURE, CLEAR, READY}:
Я предполагаю, что 1 лучше, поскольку он более прозрачен (если не более читабелен), но 2 более краток и позволяет избежать повторения каждого элемента в кортеже.
1 ответ
Вы можете использовать такой кортеж или список, не нужно повторять. (Python3.7)
>>>'SUCCESS' in ('SUCCESS', 'FAILURE', 'CLEAR', 'READY')
True
ваш случай
if response.status in (SUCCESS, FAILURE, CLEAR, READY):