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

我正在使用 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)


翻阅古今
浏览 153回答 2
2回答

温温酱

您提供了选项 {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)

慕哥6287543

在 VS 代码上使用 autopep8,您的代码将更改为以下内容:detector_x, detector_y, smeared_x, smeared_y = \    gamma_detection(decay_positions, cos_theta, phi)现在我看了一下总长度,如果这是单行的话,是 96 个字符。即使这超出了 PEP8 的约 79 个字符的限制,我仍然建议将其保留为一行。在实践中,79 个字符非常短,如果您制作 100 个字符的行,可读性不会降低。在我工作的地方,我们还将行长度的准则增加到 100 个字符。# 96 charactersdetector_x, detector_y, smeared_x, smeared_y = gamma_detection(decay_positions, cos_theta, phi)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python