Как оптимизировать код c проверкой len() нескольких переменных?

Есть часть кода:

        if len(end_test) > 0:
            if len(marking) > 0:
                if len(start_test) > 0:
                    if len(object_trials) > 0:
                        if len(data_protocol) > 0:
                            if len(namber_protocol) > 0:
                                if len(data_application) > 0:
                                    if len(namber_application) > 0:
                                        pass
                                    else:
                                        pass
                                else:
                                    pass
                            else:
                                pass
                        else:
                            pass
                    else:
                        pass
                else:
                    pass
            else:
                pass
        else:
            pass

Который проверяет длину переменно и если она не равна нулю проверяет другую переменную. Вопрос как и можно ли оптимизировать данный код??? В else будет писаться активация функции с выводом messageBox.


Ответы (2 шт):

Автор решения: GrAnd

Можно избавиться от "лесенки" просто перевернув условия:

if (len(end_test) <= 0 or len(marking) <= 0 or len(start_test) <= 0 or
    len(object_trials) <= 0 or len(data_protocol) <= 0 or len(namber_protocol) <= 0 or
    len(data_application) <= 0 or len(namber_application) <= 0
   ):
    self.message()
else:
    pass
→ Ссылка
Автор решения: extrn
sequences = (
    end_test, marking, start_test, object_trials, data_protocol,
    namber_protocol, data_application, namber_application,
)

if all(len(x) > 0 for x in sequences):
   # все непустые
else:
   # хотя бы одна пустая

хотя в большинстве случаев будет достаточно

if all(sequences):
   # все непустые
else:
   # хотя бы одна пустая

потому, что пустая последовательность обычно приводится к bool со значением False, а непустая - со значением True

→ Ссылка