Подтвердить что ты не робот

Pythonic Style для понимания многострочного списка

Возможный дубликат:
Продолжение строки для распознавания списков или выражений генератора в python

Каков самый пифонический способ написания длинного списка? Это понимание списка выводится в 145 столбцов:

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs') if elem.argsstring != '[]' and 'std::string' in null2string(elem.vartype)]

Как это должно выглядеть, если я разбиваю его на несколько строк? Я не мог найти ничего об этом в руководствах стиля Python.

4b9b3361

Ответ 1

PEP 8 видов предшествующих списков. Я обычно разбиваю их на несколько строк в логических точках:

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs')
                  if elem.argsstring != '[]' and 
                     'std::string' in null2string(elem.vartype)]

В основном, однако, я бы предпочел участие в тестировании:

def stdstring_args(elem):
    if elem.argstring == '[]':
        return False
    return 'std::string' in null2string(elem.vartype)

memberdef_list = [elem for elem in from_cache(classname, 'memberdefs')
                  if stdstring_args(elem)]