带有括号的多行代码第二行的正确缩进

时间:2018-08-03 15:26:02

标签: python indentation multiline parentheses pep8

带括号/逗号的多行Python代码第二行的推荐标准缩进是什么?

  1. 无缩进:

    plt.imshow(np.transpose(Z), extent=[0,4.2,0,48000], cmap='jet',
    vmin=-100, vmax=0, origin='lowest', aspect='auto')
    
  2. 4个空格缩进:

    plt.imshow(np.transpose(Z), extent=[0,4.2,0,48000], cmap='jet',
        vmin=-100, vmax=0, origin='lowest', aspect='auto')
    
  3. 直到(的标识:

    plt.imshow(np.transpose(Z), extent=[0,4.2,0,48000], cmap='jet',
               vmin=-100, vmax=0, origin='lowest', aspect='auto')
    
  4. 另一种解决方案?

这是链接的:Proper indentation for Python multiline strings,但这里的问题仅针对带有括号/逗号而不是字符串的多行。

2 个答案:

答案 0 :(得分:3)

如果您遵循PEP8, Indentation,那么我会选择选项3:

# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
                         var_three, var_four)

我个人非常喜欢此选项,因为它使自己和他人更容易阅读。但是,如果您在公司工作,请务必检查公司标准(每个公司可能会有其偏好)。

答案 1 :(得分:2)

我永远不会使用选项1或2,它们可能会引起误解。如果您有足够的空间,则3为好。

当选项3留出的空间太少或使用反斜杠分割行时(PyCharm在后一种情况下默认使用此选项),两个缩进级别(8个空格),还有一个选项可以使用>:

plt.imshow(np.transpose(Z), extent=[0,4.2,0,48000], cmap='jet',
        vmin=-100, vmax=0, origin='lowest', aspect='auto')

def grouper_with_prev(iterable: _Iin[_T], n: int, include_first: bool = False) \
        -> _Iout[_t.Tuple[_T, ...]]:
    """
    Returns n size chuncks of iterable with the previous n-1 elements

    """
    ...

这没有选项1和2的困惑,这使您很清楚自己在做什么。