为了账号安全,请及时绑定邮箱和手机立即绑定

从函数调用常量时 (PEP8) 换行的正确方法是什么?

从函数调用常量时 (PEP8) 换行的正确方法是什么?

翻阅古今 2021-12-17 10:23:54
我正在使用 spyder 并且我有一个类似这样的代码    detector_x, detector_y, smeared_x, smeared_y = gamma_detection(decay_positions, cos_theta, phi)对于其中第二i中decay_positions超过字符的在一条线上的推荐量(像90)。我有动态 PEP8 分析,所以它自然会给我的代码分析警告。那么在这种情况下,正确的 PEP8 方法是什么?是吗detector_x, detector_y, smeared_x, smeared_y = \gamma_detection(decay_positions, cos_theta, phi)从技术上讲,它仍在运行,但它给了我警告E122 continuation line missing indentation or outdented或者是detector_x, detector_y, smeared_x, smeared_y = gamma_detection(    decay_positions, cos_theta, phi)或者是detector_x, detector_y, smeared_x, smeared_y = gamma_detection(                                        decay_positions, cos_theta, phi)
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

您提供了选项 {1, 2, 3}。


绝对使用 2 或 3。这是它们之间的品味问题,或者您最喜欢的编辑器鼓励您使用的内容。(将所有内容放在一行,光标越过打开的括号,点击 RETURN,并使用建议的缩进。)只要


$ flake8

不抱怨,你是金子。(得到它pip install flake8。)


对于大量参数或涉及冗长表达式的参数,您甚至可以考虑每行列出一个参数。


如果您要分配很多长标识符,您可以考虑在元组解包时将 LHS 括在括号中:


(detector_x, detector_y,

 smeared_x, smeared_y) = gamma_detection(

    decay_positions,

    cos_theta + epsilon * some_long_expression(),

    phi)


查看完整回答
反对 回复 2021-12-17
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

在 VS 代码上使用 autopep8,您的代码将更改为以下内容:


detector_x, detector_y, smeared_x, smeared_y = \

    gamma_detection(decay_positions, cos_theta, phi)

现在我看了一下总长度,如果这是单行的话,是 96 个字符。即使这超出了 PEP8 的约 79 个字符的限制,我仍然建议将其保留为一行。在实践中,79 个字符非常短,如果您制作 100 个字符的行,可读性不会降低。在我工作的地方,我们还将行长度的准则增加到 100 个字符。


# 96 characters

detector_x, detector_y, smeared_x, smeared_y = gamma_detection(decay_positions, cos_theta, phi)



查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信