为什么简单的字符串是;Guido“;Python中的有效语句?

为什么简单的字符串是;Guido“;Python中的有效语句?,python,python-3.x,Python,Python 3.x,为什么这在Python中是有效的语句 "Guido" 这让我被一个多行字符串绊倒,我没有正确使用parens: # BAD message = "Guido" " van Rossum" # GOOD message = ("Guido" " van Rossum") 这纯粹是为了repl,还是有其他原因呢?表达式是Python(以及大多数其他命令式语言)中的语句,有几个很好的理由: 如果像

为什么这在Python中是有效的语句

"Guido"
这让我被一个多行字符串绊倒,我没有正确使用parens:

# BAD
message = "Guido"
" van Rossum"

# GOOD
message = ("Guido"
" van Rossum")

这纯粹是为了repl,还是有其他原因呢?

表达式是Python(以及大多数其他命令式语言)中的语句,有几个很好的理由:

  • 如果像
    foo()
    这样的函数做了一些有用的事情,但也返回了一个值,该怎么办<如果语言不允许隐式放弃返回值,则code>foo()将是无效语句
  • 文件串!它们只是碰巧是模块/类/函数的第一个语句的字符串,因此不需要特殊语法来支持它们
  • 通常,解释器很难确定表达式是否有副作用。所以它被设计成甚至不去尝试;它只对表达式求值,即使它是一个简单常量,也会丢弃结果


    要检查您提到的以及其他许多错误,
    pylint
    可能会有所帮助。它对这种情况有一个很好的解释。但是,它似乎没有抓住您的确切示例代码中的错误(使用PyLint版本2.4.4);可能是错误。

    任何表达式都是有效语句。还有docstrings。为什么它不是一个有效的语句呢?这也是docstrings的工作原理。不需要特殊的语法。为什么要投反对票?这是一个合理的问题,有一个明确的(如果简单的话)答案。抓住那些在技术上有效但暗示你可能遗漏了什么的陈述是派林存在的一个重要原因!