首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >格式化大型条件语句

格式化大型条件语句
EN

Stack Overflow用户
提问于 2018-05-25 03:07:39
回答 1查看 53关注 0票数 1

我有下面的,相当大的条件已经嵌套了4个标签。我不想创建占位符变量来降低可读性,但我也想遵守行长度。

将此条件分组并将其分解为多行的pythonic方法是什么?

格式为if (a和b)或(c和d)

代码语言:javascript
复制
if self.container.name == 'bill' and self.container.box.chest.props.by_idnum 
    or self.container.name == 'steve' and self.container.box.trunk.props.by_idnum:
EN

回答 1

Stack Overflow用户

发布于 2018-06-07 03:52:41

无论是yapf还是autopep8都不会在没有括号的情况下进行清理。但当你添加它们时,它会变得更干净:

代码语言:javascript
复制
 % yapf code.py             
if (self.container.name == 'bill' and self.container.box.chest.props.by_idnum
        or self.container.name == 'steve'
        and self.container.box.trunk.props.by_idnum):
    pass

 % autopep8 code.py               
if (self.container.name == 'bill' and self.container.box.chest.props.by_idnum
        or self.container.name == 'steve' and self.container.box.trunk.props.by_idnum):
    pass

如果长度小于80个字符,我会选择后者。如果这仍然太长,我会考虑将(a和b)移到一个函数中。通常,这可能更可取,因为您可以在代码中通过变量名解释(a和b)是什么意思。

注意:在这种情况下,它可能更干净,如下所示:

代码语言:javascript
复制
if (self.container.name in ['bill', 'steve']
        and self.container.box.trunk.props.by_idnum):
    pass
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50516538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档