Si j'ai besoin d'un mais n'utilise pas le pour code> boucle en python:
i code> pour quoi que ce soit, pylint se plaint de la variable inutilisée. Comment devrais-je gérer cela? Je sais que vous pouvez faire ceci: P>
for dummy_index in range(1,42):
print "spam"
5 Réponses :
for _ in range(1,42): print "spam"
Je pensais que cela pourrait le reconnaître car il est traditionnellement utilisé lorsque vous n'avez aucune utilisation de la variable.
+1: Avec les paramètres par défaut, Pylint ne se plaint pas de variables inutilisées commençant par "mannequin" ou "_". L'utilisation de "_" pour stocker des valeurs inutiles est courante dans Python (par exemple, foo, _ = func_returning_tuple () code> ayant dit cela, je préférerais
_i code> via
_ < / code>.
Méfiez-vous: Utilisation de _ code> pour cela lorsque vous utilisez également le
GetText < / Code>
Bibliothèque (ou pensant que vous pourriez l'utiliser à l'avenir) causera des problèmes. GetText utilise _ code> en tant que fonction de traduction i18n (
_ ("traduire ce texte") code>), mais après la boucle ci-dessus
_ code> serait soudainement 41 Au lieu de cela et l'invocation suivante constituerait une exception.
C'est ce que je faisais, mais j'espérais que quelqu'un me dirait dans une certaine direction où je n'avais pas à déclarer la variable inutilisée, plutôt que de simplement l'ignorer.
@Jacxel: Il n'y a pas de moyen «naturel» de la boucle n i> fois sans une variable de comptoir à Python, et vous ne devriez pas recourir à des hacks laids autour de cela. Soit simplement ignorer l'avertissement Pylint, configurez-le pour ignorer les variables non utilisées nommées i code> ou utilisez un préfixe, probablement le
_ code> (moins distrayant que
mannequin code >).
@FerdinandBeyer Si vous mettez ce dernier commentaire comme une réponse à l'accepter. C'est ce que je demandais. Merci
Selon pylint code> Documentation
:
for dummy in range(1, 42): print "spam"
J'ai donné cette solution dans ma question, je demande s'il y a un moyen de le faire sans jamais déclarer la variable
Habituellement, vous pouvez y travailler, tout comme ceci dans votre cas:
>>> print "spam\n"*len(range(1,42))
Mais probablement l'OP veut faire quelque chose de plus complexe, c'est un exemple simple ...
@Paulhiemstra Ce que je dis, c'est que probablement encore plus de choses complexes peuvent être faites sans les variables non utilisées. Je ne peux pas imaginer des paramètres qui ne peuvent pas être résolus sans utiliser de variables factices
Bien qu'il s'agisse probablement d'une solution de contournement, comme cela, je tente de faire autant de modifications que possible du code. Je travaille sur l'obtention d'un cadre existant jusqu'à PEP8 et je veux éviter de faire de gros changements dans les cas inutiles.
@ Luke14Free, je comprends et je suis d'accord
Il n'y a pas de manière "naturelle" de boucler n em> temps sans une variable de comptoir en Python, et que vous ne devriez pas recourir à des hacks laids pour faire taire des analyseurs de code. P>
Dans votre cas, je suggérerais l'une des opérations suivantes: P>
i code>, qui ne sont généralement utilisés que dans
pour code> boucles de toute façon. LI>
_ code> (c'est moins distrayant que
mannequin code>) li>
ul>
pour code> boucle. li>
index [1] code> à
index [2] code> juste en ajoutant
si index [1] code> est fait.
Index de retour [] + 1 code>. LI>
pour code> boucle et n'est pas efficace dans de longs programmes. Li>
ol>
Ceci est très subjectif. Utilisez un
_ code> ou
préfixe code> préfixe ou choisissez sur un schéma différent et définissez l'option
- factice-variables-rgx code> en conséquence (par exemple,
inutilisé _ code>).
En fait, comme "i" est utilisé et c'est une partie nécessaire de la syntaxe dans la déclaration code> pour code>, le seul mannequin i> la chose autour est Pylint lui-même. Je conseillerais de placer cela comme un rapport de bogue dans le projet PYLINT.