cie*_*lak 32 python coding-style list-comprehension
可能重复:
python中列表推导或生成器表达式的行继续
编写长列表理解的最pythonic方法是什么?这个列表理解出现在145列:
memberdef_list = [elem for elem in from_cache(classname, 'memberdefs') if elem.argsstring != '[]' and 'std::string' in null2string(elem.vartype)]
Run Code Online (Sandbox Code Playgroud)
如果我把它分成多行,应该怎么看?我在Python样式指南中找不到任何相关内容.
Mar*_*ers 41
PEP 8有点早于列表理解.我通常会在逻辑位置将这些行分解为多行:
memberdef_list = [elem for elem in from_cache(classname, 'memberdefs')
if elem.argsstring != '[]' and
'std::string' in null2string(elem.vartype)]
Run Code Online (Sandbox Code Playgroud)
但大多数情况下,我首先放弃了相关的测试:
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)]
Run Code Online (Sandbox Code Playgroud)