У меня есть метод, который вызывает 4 других метода в последовательности, чтобы проверить определенные условия, и возвращает сразу (не проверяя следующие) всякий раз, когда кто-то возвращает что-то Truthy.
def check_all_conditions():
x = check_size()
if x:
return x
x = check_color()
if x:
return x
x = check_tone()
if x:
return x
x = check_flavor()
if x:
return x
return None
Это похоже на большой багажный код. Вместо каждого двухстрочного оператора if я бы предпочел сделать что-то вроде:
x and return x
Но это неверный Python. Я скучаю по простому, элегантному решению здесь? Кстати, в этой ситуации эти четыре метода проверки могут быть дорогими, поэтому я не хочу вызывать их несколько раз.
x and return x
лучше, чем if x: return x
? Последний гораздо более читабелен и, следовательно, удобен в обслуживании. Вам не нужно слишком беспокоиться о количестве символов или строк; удобочитаемость имеет значение. В любом случае, это точно такое же количество непробельных символов, и, если вам действительно нужно, они if x: return x
будут отлично работать только на одной строке.
x
(в противоположность bool(x)
), так что я думаю, что можно с уверенностью предположить, что функции OP могут возвращать что угодно, и он хочет в первую очередь все, что является правдивым.