web-dev-qa-db-fra.com

pylint dit "Parens inutiles après le mot clé% r"

Après mon premier CodeReview Q - J'ai reçu un conseil en réponse:

Votre code semble être pour Python 2.x. Pour être un peu plus prêt pour une éventuelle future migration vers Python 3.x, je recommande de commencer écrire vos relevés imprimés ... comme imprimés (...)

Ainsi, dans mon code suivant (j'utilise Python 2.6 et 2.7 sur mes boîtes), je toujours nous () Pour print:

print('Hello')

Aujourd'hui, je teste mon code pour la première fois avec PyLint, et il dit:

C: 43, 0: Parens inutiles après le mot-clé 'print' (superfluous-parens)

Ce qui explique ici .

Donc - print(str) est-il vraiment incorrect, ou je peux ignorer ces messages PyLint?

22
setevoy

Pour que pylint sache que vous souhaitez utiliser la nouvelle instruction print et ne pas mettre de crochets erronés, utilisez simplement

from __future__ import print_function

au début de votre script. Cela a également l'avantage que vous toujours devez utiliser print(...) au lieu de print .... Par conséquent, votre programme lancera un SyntaxError au cas où vous retomberiez dans l'ancienne syntaxe.

Soyez conscient que cela ne fonctionne pas dans python 2.5 ou plus ancien. Mais puisque vous utilisez 2.6 et 2.7, il ne devrait y avoir aucun problème.

41
SmCaterpillar

En Python 3 print est une fonction, qui nécessite le (). En Python 2 ce n'est pas le cas, donc les parents ne sont pas nécessaires.

Si vous migrez votre code vers Python 3 à l'avenir, il est bon de garder l'habitude de mettre ().

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

Vous utilisez probablement un pylône Python2, c'est pourquoi il lance cet avertissement, rien à craindre.

4
danielfranca