Я работал над рефакторингом всей кодовой базы для одного из проектов. В основном модульный код в отдельные модули, классы с одной обязанностью, разбивка функции спагетти на маленькие маленькие методы и т. Д.
Однако я хочу знать, как мы можем аккуратно / элегантно обрабатывать приведенный ниже блок кода, который имеет кратно, если условия с операторами продолжения . Идея состоит в том, чтобы сделать его меньшим и чистым. В других случаях я использую предикат везде, где нахожу несколько операторов if-и . Но здесь ситуация немного отличается, так как они печатают разные сообщения журнала с учетом различных условий.
def somefunc(*args, **kwargs):
for p_key, p_det in somedict.iteritems():
get_all_somevars(p_det)
if somevar1 and somevar2 is None:
continue
if somevar3 is None:
logger.info('some message')
continue
if somevar4 is None:
logger.info('some message')
continue
somevar5 = x.split('\n')
somevar6 = y.split('\n')
somevar7 = do_something_2(somevar5, somevar6)
if somevar7 is None:
logger.info('some message')
continue
do_something_3()