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

时间:2015-02-24 11:17:35

标签: python python-2.7 python-3.x

first CodeReview Q之后 - 我得到了回答:

  

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

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

print('Hello')

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

  

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

其中解释了here

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

2 个答案:

答案 0 :(得分:39)

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

from __future__ import print_function

在脚本的开头。这样做的另一个好处是,始终需要使用print(...)而不是print ...。因此,如果您回退到旧语法,您的程序将抛出SyntaxError

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

答案 1 :(得分:4)

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

如果您将来将代码迁移到Python 3,那么保持放置()的习惯是件好事。

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

你可能正在使用Python2 pylint,这就是它抛出这个警告的原因,没什么可担心的。