对非PEP8兼容代码(E211)会产生不良后果吗?

时间:2014-06-13 15:05:36

标签: python pep8

让我们说有一个函数定义为:

def thingy(arg1):
    pass

根据书籍和PEP8(error code E211),我知道正确的称呼方式是:

thingy(true)

但是,我在现有代码中也看到了以下形式:

thingy (true)

除了反对PEP8外,它是否有害?

特别是,它是否可以使用推荐的方式创建不会引发的不需要的错误/副作用?

1 个答案:

答案 0 :(得分:5)

不,在可调用对象和调用括号之间使用时,空格不重要。

来自lexical analysis reference documentation

  

除了在逻辑行的开头或字符串文字中,空白字符空格,制表符和换页符可以互换使用以分隔标记。只有当两个令牌的串联被解释为不同的令牌时才需要空格(例如,ab是一个令牌,但b是两个令牌)。

  

除NEWLINE,INDENT和DEDENT外,还存在以下类别的标记:标识符,关键字,文字,运算符和分隔符。 空格字符(前面讨论过的行终止符除外)不是标记,但用于分隔标记。在存在歧义的情况下,当从左到右阅读时,令牌包含形成合法令牌的最长字符串。

强调我的。

在不需要空格的情况下,除了在视觉上分离标记之外没有任何意义。 thingy(已经是两个独立的令牌,当没有空格时,它不会被混淆为一个令牌。因此,空格的存在并不会改变对该线的解释。