OK, 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 de por qué no hay una implementación formal de comentarios de tipo multilínea, / * * /. No tengo ningún problema con las comillas triples, pero tengo un poco de curiosidad sobre lo que llevó a esta decisión de diseño.
if False:
el códigoRespuestas:
Dudo que obtenga una mejor respuesta que "Guido no sintió la necesidad de comentarios de varias líneas".
Guido ha tuiteado sobre esto:
fuente
if False:
antes del código que debe deshabilitarse.if False
es mejor. Realiza exactamente lo mismo, aunque es menos claro (ya que no es tan obvio de un vistazo que el bloque de código ha sido desactivado).Los comentarios de varias líneas son fácilmente rompibles. ¿Qué pasa si tiene lo siguiente en un programa de calculadora simple?
Intenta comentar eso con un comentario de varias líneas:
Vaya, tu cadena contiene el delimitador de comentario final.
fuente
#:
y usar sangría para mostrar cuándo finalizó el comentario. Es limpio, consistente y maneja el anidamiento perfectamente.El texto entre comillas triples NO debe considerarse comentarios de varias líneas; por convención, son docstrings . Deben describir lo que hace su código y cómo usarlo, pero no para cosas como comentar bloques de código.
Según Guido, los comentarios multilínea en Python son solo comentarios contiguos de una sola línea (busque "comentarios en bloque").
Para comentar bloques de código, a veces uso el siguiente patrón:
fuente
V}>>
Esto probablemente se remonta al concepto central de que debería haber una forma obvia de hacer una tarea. Los estilos de comentarios adicionales agregan complicaciones innecesarias y podrían disminuir la legibilidad.
fuente
#
.Bueno, las comillas triples se usan como comentarios multilínea en cadenas de documentos. Y # comentarios se utilizan como comentarios en línea y la gente se acostumbra a ellos.
La mayoría de los lenguajes de script tampoco tienen comentarios multilínea. Tal vez esa es la causa?
Ver PEP 0008 , sección Comentarios
Y vea si su editor de Python ofrece algunos atajos de teclado para comentarios en bloque. Emacs lo admite, al igual que Eclipse, presumiblemente la mayoría de los IDEs decentes.
fuente
Del zen de Python :
Debe haber una, y preferiblemente solo una, forma obvia de hacerlo.
fuente
Personalmente, mi estilo de comentario en Java es como
Entonces, tener comentarios de una sola línea no es tan malo si su estilo es típico del ejemplo anterior porque en comparación tendría
VB.NET también es un lenguaje con comentarios de una sola línea, y personalmente me resulta molesto ya que los comentarios terminan pareciendo menos me gusta y más como algún tipo de cita
¿Los comentarios de una sola línea terminan teniendo menos uso de caracteres que los comentarios de varias líneas, y es probable que algunos caracteres dudosos escapen de una declaración de expresiones regulares? Aunque tendería a estar de acuerdo con Ned.
fuente
Para comentar un bloque de código en el IDE de Pycharm :
fuente
Use el bloque de comentarios o busque y reemplace (s / ^ / # / g) en su editor para lograr esto.
fuente
Resolví esto descargando una macro para mi editor de texto (TextPad) que me permite resaltar líneas y luego inserta # en la primera de cada línea. Una macro similar elimina los #. Algunos pueden preguntarse por qué es necesaria la multilínea, pero resulta útil cuando intenta "desactivar" un bloque de código con fines de depuración.
fuente
Para cualquier otra persona que busque comentarios de varias líneas en Python, usar el formato de triple cita puede tener algunas consecuencias problemáticas, como acabo de aprender por las malas. Considera esto:
El comentario de varias líneas se insertará en la siguiente cadena, desordenando la
'species'
clave. Es mejor usarlo solo#
para comentarios.fuente
Debido a que la convención # es común, y realmente no hay nada que pueda hacer con un comentario de varias líneas que no pueda hacer con un comentario de # signo. Es un accidente histórico, como la ascendencia de los
/* ... */
comentarios que se remontan a PL / I,fuente
Suponga que simplemente se consideraron innecesarios. Como es tan fácil escribir
#a comment
, los comentarios de varias líneas pueden consistir en muchos comentarios de una sola línea.Para HTML , por otro lado, hay más necesidad de multilínea. Es más difícil seguir escribiendo
<!--comments like this-->
.fuente
Esto es solo una suposición ... pero
Debido a que son cadenas, tienen un valor semántico (el compilador no las elimina), por lo tanto, tiene sentido que se usen como cadenas de documentos. De hecho, se convierten en parte de la AST , por lo que la extracción de documentación se vuelve más fácil.
fuente
Además, los comentarios multilínea son una perra . Lamento decirlo, pero independientemente del idioma, no los uso para nada más que para propósitos de depuración. Digamos que tiene un código como este:
Luego, descubre que hay algo en su código que no puede solucionar con el depurador, por lo que comienza a depurarlo manualmente comentando trozos de código cada vez más pequeños con estos comentarios multilínea. Esto le daría la función:
Esto es realmente irritante.
fuente
/*
comentarios de estilo.Comentarios multilínea usando IDLE en:
Mac OS X , después de seleccionar el código, comenta un bloque de código con Ctrl+ 3y descomenta usando Ctrl+ 4.
Windows , después de la selección del código, comenta un bloque de código con Ctrl+ Alt+ 3y descomenta usando Ctrl+ At+ 4.
fuente
Recuerdo haber leído sobre un tipo que pondría sus comentarios de varias líneas en una variable de triple cita:
Esto ocupa un poco de memoria, pero le brinda la funcionalidad de comentarios de varias líneas, y además la mayoría de los editores resaltarán la sintaxis para usted :)
También es fácil comentar el código simplemente envolviéndolo con
y
fuente
x =
y no ocupa memoria.