Как транспонировать эту строку кода?

    return ((min_bb is None and max_bb is None)
            or min_bb <= hand["BB"] <= max_bb)

Ошибка следующая: R: 37, 4: рассмотрите возможность использования троичного (max_bb равно None, если min_bb равно None else min_bb < = рука ['BB'] <= max_bb) (рассмотреть-тройное использование)

Спасибо

-2
CuriousPanda 22 Окт 2019 в 14:06
4
У вас есть ответ в сообщении об ошибке.
 – 
Guy
22 Окт 2019 в 14:10
Сообщение (pylint на самом деле не выдает ошибок) сообщает вам, что именно предлагается использовать вместо этого. Я думаю, что ваша версия в целом более ясна, но вы должны подумать о том, что произойдет, если одно из значений будет None, а другое - нет.
 – 
Karl Knechtel
22 Окт 2019 в 14:11

1 ответ

Я предполагаю, что идея заключается в том, что когда min_bb равен None, тогда нет ограничений на то, насколько низким может быть hand['BB'], и аналогичным образом на другом конце.

Это немного сложнее, чем кажется, и я думаю, что лучше рассмотреть каждую сторону сравнения отдельно:

return (min_bb is None or min_bb <= hand["BB"]) and (max_bb is None or hand["BB"] <= max_bb)

Это немного меньше, СУХОЙ (hand["BB"] повторяется), но я думаю, что это понятнее, и, в частности, очевидно, что происходит, когда одно из значений границ равно None, а другое - нет.

0
Karl Knechtel 22 Окт 2019 в 14:15