1308 votes

Commentaires multilignes en Python

J'ai récemment commencé à étudier Python et je n'ai trouvé nulle part de discussion sur les commentaires de plusieurs lignes. La plupart des langues ont un symbole de commentaire en bloc comme

/* 

*/

J'ai essayé avec ceci, mais il jette l'erreur. Peut-être que ce n'est pas la bonne méthode. Python dispose-t-il vraiment d'une fonction de commentaire multiligne ?

2 votes

Je suppose qu'étant un langage interprété, il est logique, comme dans le cas de sh ou bash ou zsh, que # est le seul moyen de faire des commentaires. Je suppose que cela facilite l'interprétation des scripts Python de cette façon.

1 votes

Je sais que cette réponse est ancienne, mais je suis tombé dessus parce que j'avais la même question. La réponse acceptée fonctionne, mais je ne connais pas assez Python pour savoir pourquoi elle n'est pas correcte (selon ADTC).

7 votes

@BrandonBarney Laissez-moi vous expliquer le problème. La réponse acceptée, qui utilise ''', crée en fait une chaîne de plusieurs lignes qui ne fait rien. Techniquement, ce n'est pas un commentaire. Par exemple, vous pouvez écrire k = '''faux commentaire, vraie chaîne'''. Puis, print(k) pour voir ce que signifie ADTC.

2022voto

Petr Viktorin Points 13687

Vous pouvez utiliser des chaînes de caractères à triple guillemet. Lorsqu'elles ne sont pas une docstring (première chose dans une classe/fonction/module), elles sont ignorées.

'''
This is a multiline
comment.
'''

Guido van Rossum (créateur de Python) a tweeté ceci comme un "conseil de pro".

Cependant, le guide de style de Python, PEP8, favorise l'utilisation de commentaires consécutifs d'une seule ligne et c'est également ce que vous trouverez dans de nombreux projets. Les éditeurs disposent généralement d'un raccourci pour effectuer cette opération facilement.

26 votes

Hm. J'ai mis une énorme chaîne multiligne dans un script de python test.py juste pour voir. Quand je le fais import test , a test.pyc est généré. Malheureusement, le pyc Le fichier est énorme et contient la chaîne entière en texte brut. Ai-je mal compris quelque chose, ou ce tweet est-il incorrect ?

27 votes

@unutbu, si c'était la seule chose dans le fichier, c'était une docstring. Mettez du code avant et il disparaîtra de la liste des documents. pyc . J'ai édité la réponse et mis "module" dans la liste des choses qui ont des docstrings.

40 votes

Je n'aime pas les chaînes de caractères multilignes comme commentaires. La coloration syntaxique les marque comme des chaînes de caractères, pas comme des commentaires. J'aime utiliser un éditeur décent qui gère automatiquement la mise en commentaire des régions et l'habillage des commentaires multilignes pendant que je tape. Bien sûr, c'est une question de goût.

93voto

unutbu Points 222216

Python dispose d'une syntaxe de chaîne de caractères et de commentaires multilignes, mais votre éditeur devrait également être en mesure de mettre en commentaire une région sélectionnée (en plaçant une balise de type # devant chaque ligne individuellement). Si ce n'est pas le cas, passez à un éditeur qui le fait.

Programmer en Python sans certaines fonctions d'édition de texte peut être une expérience pénible. Trouver le bon éditeur (et savoir l'utiliser) peut faire une grande différence dans la perception de l'expérience de programmation en Python.

L'éditeur doit non seulement être capable de commenter les régions sélectionnées, mais aussi de déplacer facilement les blocs de code vers la gauche et la droite, et de placer automatiquement le curseur au niveau d'indentation actuel lorsque vous appuyez sur Entrée. Le pliage du code peut également être utile.

3 votes

Les chaînes entre guillemets (''') fonctionnent en effet pour remplir les commentaires de plusieurs lignes.

0 votes

Merci.. J'ai utilisé (''') et (""") pour commenter le bloc mais cela ne m'a pas aidé pour les applications Django. J'ai donc choisi IDLE et il y a des options comme Commenter la région y Régions sans commentaires (raccourci : Alt+3 et Alt+4 respectivement) sous la rubrique Format menu. Maintenant, c'est plus facile que jamais..

0 votes

Vous devriez également envisager d'utiliser un IDE. Oui, ils sont lourds, mais s'ils sont utilisés correctement, ils peuvent vraiment améliorer le temps de codage. Personnellement, j'utilisais PyDev, et j'utilise maintenant PTVS (avec Visual Studio). Je recommanderais sans hésiter PTVS, car il est vraiment agréable de travailler avec lui, il contient les caractéristiques ci-dessus et bien plus encore - intégration directe avec virtualenvs et débogage vraiment efficace, pour ne pas dire plus.

29voto

Sanjay T. Sharma Points 12620

A ma connaissance, Python n'a pas de commentaires de bloc. Pour commenter des lignes individuelles, vous pouvez utiliser la fonction # caractère.

Si vous utilisez Notepad++ , il existe un raccourci pour les commentaires en bloc . Je suis sûr que d'autres comme gVim et Emacs ont des caractéristiques similaires.

4 votes

Ceci est incorrect, voir les réponses sur l'utilisation des guillemets triples.

11 votes

@FernandoGonzalezSanchez : Ce n'est vraiment pas incorrect. Cette "chaîne de caractères multi-lignes en tant que commentaire" peut être décrite au mieux comme un "pro-tip". Les docs officiels de Python ne disent rien à ce sujet, d'où la question postée par OP.

8 votes

C'est un PEP pour les docstrings ; il n'y a pas une seule mention de "comment" sur cette page.

16voto

Anti Earth Points 970

Je pense que ce n'est pas le cas, sauf qu'une chaîne de caractères multiligne n'est pas traitée. Cependant, la plupart des IDEs Python, si ce n'est tous, ont une touche courte pour "commenter" plusieurs lignes de code.

1voto

Saideep Points 1

Pour commenter plusieurs lignes en Python selon la version 3.4.1 :

Nous devons utiliser le symbole d'initialisation des chaînes de caractères (') et les utiliser trois fois au point de départ et au point d'arrivée. Dans l'exemple ci-dessous, la sortie de la somme est commentée. Pour un commentaire d'une seule ligne, nous pouvons utiliser (#).

Exemple :

num= [1,56,23,13,46,78]

num.sort()

x = num [2]

y = num [4]

print ("The value of x is = ")

print (x)

print ("The value of y is = ")

print (y)

sum = x+y

'''

print("The sum of the two numbers is = ")

print (sum)'''

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X