pylint说"%r关键字后不必要的parens"

set*_*voy 23 python python-2.7 python-3.x

在我的第一个CodeReview Q之后 - 我得到了回答:

您的代码似乎适用于Python 2.x. 为了更好地准备将来可能迁移到Python 3.x,我建议开始将print ...语句写为print(...)

因此,在我的下面的代码中(我在我的盒子上使用Python 2.6和2.7)我总是()print:

print('Hello')
Run Code Online (Sandbox Code Playgroud)

今天我第一次用PyLint测试我的代码,它说:

C:43,0:'print'关键字后不必要的parens(多余的parens)

这里解释一下.

那么 - 确实print(str)是不正确的,或者我可以忽略这个PyLint消息?

SmC*_*lar 43

要使pylint意识到你想要使用新的print语句而不是放错误的括号,只需使用

from __future__ import print_function
Run Code Online (Sandbox Code Playgroud)

在脚本的开头.这也有一个优点,你总是需要使用print(...)而不是print ....因此,SyntaxError如果您回退到旧语法,您的程序将抛出.

请注意,这在python 2.5或更早版本中不起作用.但是因为你使用2.6和2.7,所以应该没有问题.


dan*_*nca 5

在 Python 3 中 print 是一个函数,它需要 ()。在 Python 2 中不是,所以父母是不必要的。

如果您将来要将代码迁移到 Python 3,最好保持 put () 的习惯。

https://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function https://www.python.org/dev/peps/pep-3105/

您可能正在使用 Python2 pylint,这就是它抛出此警告的原因,无需担心。

  • // , 如何切换到 Python 3 `pylint` 并且仍然能够从命令行使用它? (10认同)