购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 格式化以提高可读性(及更多)

在实践中,列表推导式往往过长,难以用单行表示。并且,列表推导式通常由多个独立的逻辑部分组成,这些逻辑在编码过程中会独立变化。这会带来不便,但可以通过一个小技巧解决问题:在方括号内,Python的空白字符不起作用。开发者可以利用这一点,通过换行使列表推导式更易读且更易于维护:

还有另一种变体:

以上代码将推导式拆分为多行。对于复杂的推导式,建议读者也拆分为多行。这么做有几个好处,最显著的是可读性大幅提升。在方括号内,推导式完成了三项工作:表达式(word+word);序列(for word in words);以及过滤条件(if len(word)<5)。三项工作的逻辑相互独立,拆分成多行比单行更容易阅读和理解。阅读代码时,多行拆分其实是做了预先解析。

多行拆分推导式还有另一个好处,可使版本控制和代码审查中的差异更加精准。假如笔者和读者在同一个开发团队,分别在不同的功能分支上对这段代码进行修改。在笔者的分支中,将表达式改为word * 2;而在读者的分支中,将条件改为len(word)<7。如果推导式是单行的,版本控制工具会将其视为合并冲突,最后合并的人需要手动解决冲突问题 。但是,由于将列表推导式拆分成了三行,代码控制工具可以自动合并两个分支。而且,如果进行代码审查,审查者能立即识别出具体的更改,无须逐行阅读并思考。 qtGFA9OIfjuouGTp7PxT9uC54N+RADCJUv8X+uEKsRSrGQ/E2FH4eo3PG+liQvWD

点击中间区域
呼出菜单
上一章
目录
下一章
×