Если действие и сообщение одинаковы, используйте if a < 0 or b < 0. Объединение должно сохранять порядок вычисления и наблюдаемые побочные эффекты.
Когда два условия можно объединить через or
Если действие и сообщение одинаковы, используйте if a < 0 or b < 0. Объединение должно сохранять порядок вычисления и наблюдаемые побочные эффекты.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Функция отдельно делает if a < 0: raise ValueError('negative') и такое же условие для b. Можно ли объединить проверки и когда это станет неверным?
Ответ
Если действие и сообщение одинаковы, используйте if a < 0 or b < 0. Объединение должно сохранять порядок вычисления и наблюдаемые побочные эффекты.
В Python or вычисляет вторую часть только при ложности первой. Здесь обе проверки простые и исключение одинаковое, поэтому поведение сохраняется. Если сообщения различаются, во второй ветке есть обязательный вызов или условия влияют друг на друга, механическое объединение может изменить контракт и диагностику.