¿Por qué Python no tiene comentarios de varias líneas?

7 minutos de lectura

avatar de usuario
GenialGravatar

Bien, soy consciente de que las cadenas de comillas triples pueden servir como comentarios de varias líneas. Por ejemplo,

"""Hello, I am a 
   multiline comment"""

y

'''Hello, I am a 
   multiline comment'''

Pero técnicamente hablando, estas son cadenas, ¿correcto?

Busqué en Google y leí la guía de estilo de Python, pero no pude encontrar una respuesta técnica a por qué no hay una implementación formal de multilínea, /* */ tipo de comentarios. No tengo ningún problema con el uso de comillas triples, pero tengo un poco de curiosidad por saber qué llevó a esta decisión de diseño.

  • Si puede hacerlo como una cadena, ¿por qué agregar más formas?

    – Brody

    29 de diciembre de 2008 a las 5:22

  • Solo quería agregar que falla si lo que está tratando de comentar también tiene comentarios/cadenas de varias líneas. Y eso, por supuesto, es por lo que los necesitamos.

    – nycynik

    2 de abril de 2012 a las 14:28

  • @S.Lott Creo que es una pregunta útil. Para comprender por qué Python es bueno, es importante comprender las decisiones de diseño que se tomaron (y las decisiones en curso que aún se toman). La pregunta no es argumentativa ni combativa; es curioso No hay necesidad de ser tan duro con la curiosidad.

    –Mark E. Haase

    20 de junio de 2012 a las 13:01

  • Si necesita un comentario de varias líneas para cod solo if False: el código

    – AturSams

    11 de marzo de 2015 a las 13:39


  • @Brody Porque las cadenas se procesan. Los comentarios son ignorados. Hay problemas con el uso de cadenas como comentarios. Solo mire alrededor 🙂

    – ADTC

    18 de julio de 2015 a las 5:39

avatar de usuario
Ned Batchelder

Dudo que obtenga una mejor respuesta que “Guido no sintió la necesidad de comentarios de varias líneas”.

guido tiene tuiteó sobre esto:

Sugerencia de Python: puede usar cadenas de varias líneas como comentarios de varias líneas. A menos que se utilicen como cadenas de documentos, ¡no generan código! 🙂

  • Ver El tuit de Guido en este.

    – Petr Viktorin

    8 de octubre de 2011 a las 13:07


  • Una desventaja de mezclar cadenas de varias líneas y comentarios de bloque es que IDE no tiene idea de lo que quiere, por lo que no puede mostrar comentarios en un estilo diferente según sea necesario.

    –Baiyan Huang

    17 de septiembre de 2012 a las 3:58

  • También hace que sea imposible comentar el código con cadenas de varias líneas (y puede provocar errores de sangría si no tiene cuidado). ¡Eh!

    –Mike Graham

    17/09/2012 a las 21:15

  • He trabajado en muchos campos en los que si su código contiene un código comentado, su código es rechazado e incluso puede verse invitado a actualizar su CV. Quite el código que no se necesita, no hay problema si el código está bajo control de versión, o use if False: antes del código que necesita ser deshabilitado.

    –Steve Barnes

    09/03/2015 a las 19:55

  • @SteveBarnes está de acuerdo en que los grandes bloques de código comentado en producción son malos. Pero no entiendo por qué if False es mejor. Logra exactamente lo mismo, aunque es menos claro (ya que no es tan obvio de un vistazo que el bloque de código ha sido deshabilitado).

    usuario1919238

    27 de julio de 2016 a las 9:37

Los comentarios de varias líneas se pueden romper fácilmente. ¿Qué sucede si tiene lo siguiente en un programa de calculadora simple?

operation = ''
print("Pick an operation:  +-*/")
# Get user input here

Intenta comentar eso con un comentario de varias líneas:

/*
operation = ''
print("Pick an operation:  +-*/")
# Get user input here
*/

Vaya, su cadena contiene el delimitador de comentario final.

  • Lo mejor de esta respuesta es cómo la maneja el resaltador de sintaxis de SO.

    – Nietzche-jou

    29 de diciembre de 2008 a las 15:50

  • Esta es una de las muchas razones por las que tenemos caracteres de escape, no lo veo como una buena razón para NO tener soporte para comentarios de varias líneas.

    – Natalia Adams

    1 de abril de 2010 a las 16:17

  • No entiendo tu lógica, tal vez mi comentario no fue lo suficientemente claro. Si usamos \ como carácter de escape: print(“Seleccione una operación: +-*\/”) “*/” ya no denota un bloque de comentario final, ya que literalmente / se imprimirá. Continúe y pruebe esto en C++. De hecho, el resaltador de sintaxis de SO mostrará que es válido. Este no es un tema complejo, existe desde hace años en otros idiomas. Le pediría que actualice su publicación para incluir el uso de caracteres de escape para mostrar que PUEDE usar “*/” en su código.

    – Natalia Adams

    2 abr 2010 a las 20:57

  • ¿Qué sucede si su código contiene ”’ . Vaya, tu código contiene el delimitador de comentario final.

    – siamii

    15 de noviembre de 2011 a las 0:57

  • Los comentarios de varias líneas no son inherentemente rompibles; es solo que la mayoría de las implementaciones de ellos lo son (incluida la de Python). En mi opinión, la forma obvia de hacer comentarios de varias líneas en Python es dejarme comenzar un bloque de comentarios con #: y use sangría para mostrar cuándo terminó el comentario. Es limpio, consistente y maneja el anidamiento perfectamente.

    – GatesDA

    15 de junio de 2012 a las 7:53

avatar de usuario
Bancos de Kenan

El texto entre comillas triples NO debe considerarse un comentario de varias líneas; por convención, son cadenas de documentación. Deben describir qué hace su código y cómo usarlo, pero no para cosas como comentar bloques de código.

Según Guido, los comentarios de varias líneas en Python son solo comentarios contiguos de una sola línea (busque “bloquear comentarios”).

Para comentar bloques de código, a veces uso el siguiente patrón:

if False:
    # A bunch of code

  • parece guido cambió su mente desde entonces.

    – Petr Viktorin

    8 de octubre de 2011 a las 13:02


  • con respecto a la solución “si es falso:”, la cuestión es que en python, ya que funciona con pestañas, tendría que tabular todo el código debajo de “si es falso:”. Y desmarque el trozo después. Así que tendrías que ser bastante ingenioso con tu editor de texto.

    – barlop

    19/10/2013 a las 17:53


  • si usa un editor decente, debería ser la misma cantidad de tiempo que */

    – AturSams

    11 de marzo de 2015 a las 13:43

  • @barlop sí, ¡aprende a tus editores! Esto generalmente se puede lograr en menos de un segundo en vim con V}>>

    – Kenan Banks

    4 de abril de 2016 a las 12:48


  • Las cadenas de varias líneas/entre comillas triples no tienen que ser cadenas de documentos, y viceversa. Una cadena de documentación es “un literal de cadena que ocurre como la primera declaración en una definición de módulo, función, clase o método”, sea o no multilínea. Los literales no utilizados (no asignados o no utilizados de otro modo en una declaración/expresión) en otras partes de su código, cadena o de otro modo, se descartan en el momento de la compilación.

    – jonrsharpe

    6 de marzo de 2021 a las 11:02


Esto probablemente se remonta al concepto central de que debe haber una forma obvia de realizar una tarea. Los estilos de comentarios adicionales agregan complicaciones innecesarias y pueden disminuir la legibilidad.

avatar de usuario
Abgan

Bueno, las comillas triples se usan como comentarios de varias líneas en las cadenas de documentación. Y # comentarios se usan como comentarios en línea y la gente se acostumbra.

La mayoría de los lenguajes de script tampoco tienen comentarios de varias líneas. ¿Quizás esa es la causa?

Ver PEP 0008sección Comentarios

Y vea si su editor de Python ofrece algún atajo de teclado para comentar en bloque. Emacs lo admite, así como Eclipse, presumiblemente la mayoría de los IDE decentes lo hacen.

avatar de usuario
jeremy cantrell

De El Zen de Python:

Debe haber una, y preferiblemente solo una, forma obvia de hacerlo.

avatar de usuario
bob stein

Para comentar un bloque de código en el Pycharm IDE:

  • Código | Comentar con comentario de línea
  • Windows o Linux: Control + /
  • Mac OS: Dominio + /

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad